火力基地 "long link is not parsable"
firebase "long link is not parsable"
我想用 firebase 和 REST 缩短 longLink API 但我收到以下响应,我不知道哪里出了问题:
回复:
{
"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)
Body 看起来像这样:
{
"longDynamicLink": "https://www.google.de",
"suffix": {
"option": "SHORT"
}
}
我先尝试用真正的 URL 我想缩短。同样的错误。与使用 google 以及使用和不使用 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": []
}
]
您使用的是创建动态link的简单方法,大致相当于手动创建动态link:https://firebase.google.com/docs/dynamic-links/create-manually
在文档中,如果您仔细查看示例中传递的 link,您将看到如下模式:
https://your_subdomain.page.link/?link=your_deep_link&apn=package_name[&amv=minimum_version][&afl=fallback_link]
因此您应该根据此格式化输入 link 或使用在 json 中具有非常好的参数细分的参数创建:
https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters
这是 api 从参数创建 firebase 动态 link 的参考:
https://firebase.google.com/docs/reference/dynamic-links/link-shortener#parameters
我发现 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();
});
我想用 firebase 和 REST 缩短 longLink API 但我收到以下响应,我不知道哪里出了问题:
回复:
{
"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)
Body 看起来像这样:
{
"longDynamicLink": "https://www.google.de",
"suffix": {
"option": "SHORT"
}
}
我先尝试用真正的 URL 我想缩短。同样的错误。与使用 google 以及使用和不使用 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": []
}
]
您使用的是创建动态link的简单方法,大致相当于手动创建动态link:https://firebase.google.com/docs/dynamic-links/create-manually
在文档中,如果您仔细查看示例中传递的 link,您将看到如下模式:
https://your_subdomain.page.link/?link=your_deep_link&apn=package_name[&amv=minimum_version][&afl=fallback_link]
因此您应该根据此格式化输入 link 或使用在 json 中具有非常好的参数细分的参数创建:
https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters
这是 api 从参数创建 firebase 动态 link 的参考:
https://firebase.google.com/docs/reference/dynamic-links/link-shortener#parameters
我发现 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();
});