使用REST API(使用JS)访问Firebase动态链接的请求错误



我正在尝试通过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上发布了它,所以这种怀疑可以消除。

所以,一些评论问如何使用这个,所以这里是答案

  1. 您必须从CDN添加lib或自托管它,最好根据您的需要自行定制代码。CDN链接-https://fdl.js.org/src/links.js
  2. 现在,当您添加了lib后,请尝试使用此函数调用它这将返回shortlink

    makefdl(key, st, si, sd, domain, link);Expression文档

  3. 你把短传回来

注意:您必须等待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官方网站

最新更新