我想用firebase和REST API缩短longLink,但我得到以下回复,我不知道出了什么问题:
响应:
{
"error": {
"code": 400,
"message": "Long link is not parsable: https://www.google.de [https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters]",
"status": "INVALID_ARGUMENT"
}
}
这就是我的方式:
请求:https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=( hereismyapikey )
身体看起来像这样:
{
"longDynamicLink": "https://www.google.de",
"suffix": {
"option": "SHORT"
}
}
我首先尝试使用我想缩短的真实网址。同样的错误。比谷歌和有和没有http(s)。我没有选择,希望有人能看到我在这里做错了什么。
编辑:全邮差请求:
"item": [
{
"name": "shortLinks",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"longDynamicLink\": \"www.google.de\",\r\n \"suffix\": {\r\n \"option\": \"SHORT\"\r\n }\r\n}"
},
"url": {
"raw": "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=xxx",
"protocol": "https",
"host": [
"firebasedynamiclinks",
"googleapis",
"com"
],
"path": [
"v1",
"shortLinks"
],
"query": [
{
"key": "key",
"value": "xxx"
}
]
}
},
"response": []
}
]
答案 0 :(得分:3)
您使用简单的方法创建动态链接,这大致相当于手动创建动态链接:https://firebase.google.com/docs/dynamic-links/create-manually
在文档中,如果您仔细看到示例中传递的链接,您将看到如下模式:
https://your_subdomain.page.link/?link=your_deep_link&apn=package_name[&amv=minimum_version][&afl=fallback_link]
所以你应该根据这个来设置输入链接的格式,或者使用json中具有非常好的参数细分的参数创建:
https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters
以下是从参数创建firebase动态链接的api参考:
https://firebase.google.com/docs/reference/dynamic-links/link-shortener#parameters
答案 1 :(得分:2)
我发现JSON参数方法更简单。
var body = {
"dynamicLinkInfo": {
"dynamicLinkDomain": "yourcustom.page.link",
"link": fileUrl
},
"suffix": {
"option": "SHORT"
}
};
然后,如果您使用的是Node。 node-fetch包REST调用的工作方式如下:
var fetchFileUrl = fetch(YOUR_SHORTLINK_URL, {
method: 'POST',
body: JSON.stringify(body),
headers: { 'Content-Type': 'application/json' },
}).then(function(response){
return response.json();
});