我正在尝试通过REST API使用firebase动态链接实现一个简单的URL缩短器
我准备了一个简单的异步JS函数进行测试(因为我没有在云函数中进行外部出口调用的计费帐户(
下面是代码:
async function fetcher(keyAPI,tempURL) {
let reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=${keyAPI}`;
let parameters = {
method : "POST",
headers: {
'Content-Type': 'application/json'
},
body : JSON.stringify({
"longDynamicLink": tempURL,
"suffix": {
"option": "SHORT"
}
})
};
await fetch(reqURL,parameters)
.then(res => console.log(res))
.catch(err => console.log(err));
}
我收到一个错误的请求作为响应:
响应{类型:"cors","https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=[MY_WEB_API_KEY_HERE]",重定向:true,状态:400,ok:false,statusText:"错误请求",标头:标头,body:ReadableStream,bodyUsed:false}
我需要帮助来调试它。
在firebase控制台中创建前缀链接URL后尝试以下操作,因为它是必需的参数:
let reqURL=`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=<API_KEY_HERE>`;
let parameters = {
method : "POST",
headers: {
'Content-Type': 'application/json'
},
body : JSON.stringify({
"dynamicLinkInfo": {
"domainUriPrefix": "[PREFIX_URL]",
"link": "[YOUR_LINK]",
},
"suffix": {
"option": "SHORT"
}
})
};
// Get response since it returns pending promise above
return await fetch(reqURL,parameters)
.then(res => res.json())
.catch(err => err);
}
// Fetch from Promise
sURL.then(res => {
console.log(res);
return res;
});
我之前的回答被删除了,我不知道为什么,但还好
删除了邮件IMG
之前我遇到过这个问题,并对此进行了一些研究。它正在发挥作用。所以我拿走了我所有的代码,清理了它,并在Github上发布了它,所以这种怀疑可以消除。
所以,一些评论问如何使用这个,所以这里是答案
- 您必须从CDN添加lib或自托管它,最好根据您的需要自行定制代码。CDN链接-https://fdl.js.org/src/links.js
现在,当您添加了lib后,请尝试使用此函数调用它这将返回shortlink
makefdl(key, st, si, sd, domain, link);
Expression文档- 你把短传回来
注意:您必须等待API回复,因此进行等待调用,如下图所示
async function links(){
var slink = await makefdl(key, st, si, sd, domain, link);
if(slink != null){
console.log(slink);
// do something here with the shortlink
}
}
<script src="https://fdl.js.org/src/links.js"></script>
如果你有任何问题,请在评论中写下来。我很乐意回答
有关FDljs的更多信息,请访问FDL.js官方网站