是否可以使用 Firebase 动态链接指定短 link?
Is it possible to specify the short link with Firebase Dynamic Links?
这个问题是关于我认为 REST API(无论如何来自文档)与通过 Firebase 控制台提供的行为之间的差异。
这是控制台:
然而,当我查看 REST API docs 时,我没有看到任何方法可以从 Firebase 控制台执行步骤 (1)。我没有看到任何设置短 URL link 的方法,而看起来它会被生成。这很遗憾,因为我想生成可猜测的 links。作为参考,这里是他们的规范,没有特定于平台的信息键(例如“iosInfo”):
{
"dynamicLinkInfo": {
"domainUriPrefix": string,
"link": string,
},
"suffix": {
"option": "SHORT" or "UNGUESSABLE"
}
}
有没有办法通过 API 复制控制台行为?
无法为通过 API 创建的短链接设置自定义后缀。如果您有关于您的用例的更多详细信息,我建议将其提交为功能请求 https://firebase.google.com/support
我能够在 node.js 中使用 API 在 firebase 动态 link 中创建持久性 link。我做了以下。
- 创建 oauth2 客户端
import {google} from "googleapis";
const oauth2Client = new google.auth.GoogleAuth({
keyFile: "path to service account json file",
scopes: ['https://www.googleapis.com/auth/firebase']
})
- 创建link数据对象
const data = {
"dynamicLinkInfo": {
"domainUriPrefix": "https://myapp.page.link",
"link": "my deeplink",
"androidInfo": {
"androidFallbackLink": "",
"androidLink": "",
"androidMinPackageVersionCode": "",
"androidPackageName": bundleName // android package name, fe my.app.io
},
"iosInfo": {
"iosAppStoreId": `${isi}`, // app store app id
"iosBundleId": bundleName, // ios app bundle id, fe my.app.io
"iosCustomScheme": "",
"iosFallbackLink": "",
"iosIpadBundleId": "",
"iosIpadFallbackLink": ""
},
"navigationInfo": {
"enableForcedRedirect": false
},
"analyticsInfo": {
"googlePlayAnalytics": {
"utmCampaign": "",
"utmMedium": "",
"utmSource": ""
},
"itunesConnectAnalytics": {
"at": "",
"ct": "",
"mt": "",
"pt": ""
}
},
"socialMetaTagInfo": {
"socialDescription": "",
"socialImageLink": "",
"socialTitle": ""
},
},
"name": "Link name column from FDL",
"suffix": {
"customSuffix": "URL_prefix_during_link_creation_from_FDL, "option": "CUSTOM"
}
}
- 调用API
oauth2Client.request({
method: "POST",
url: "https://firebasedynamiclinks.googleapis.com/v1/managedShortLinks:create",
data: data
})
链接:
- https://firebase.google.com/docs/reference/dynamic-links/link-shortener
- https://www.npmjs.com/package/googleapis
- https://googleapis.dev/nodejs/googleapis/44.0.0/firebasedynamiclinks/interfaces/Schema$CreateManagedShortLinkRequest.html
- https://googleapis.dev/nodejs/googleapis/44.0.0/firebasedynamiclinks/classes/Resource$Managedshortlinks.html#source
据我所知,您不能使用任何直接的 REST API,因为您需要针对特定范围的适当的 oauth2 access_token。我试图欺骗 FDL 请求并反映它的行为但没有成功,但这有效。
这个问题是关于我认为 REST API(无论如何来自文档)与通过 Firebase 控制台提供的行为之间的差异。
这是控制台:
然而,当我查看 REST API docs 时,我没有看到任何方法可以从 Firebase 控制台执行步骤 (1)。我没有看到任何设置短 URL link 的方法,而看起来它会被生成。这很遗憾,因为我想生成可猜测的 links。作为参考,这里是他们的规范,没有特定于平台的信息键(例如“iosInfo”):
{
"dynamicLinkInfo": {
"domainUriPrefix": string,
"link": string,
},
"suffix": {
"option": "SHORT" or "UNGUESSABLE"
}
}
有没有办法通过 API 复制控制台行为?
无法为通过 API 创建的短链接设置自定义后缀。如果您有关于您的用例的更多详细信息,我建议将其提交为功能请求 https://firebase.google.com/support
我能够在 node.js 中使用 API 在 firebase 动态 link 中创建持久性 link。我做了以下。
- 创建 oauth2 客户端
import {google} from "googleapis";
const oauth2Client = new google.auth.GoogleAuth({
keyFile: "path to service account json file",
scopes: ['https://www.googleapis.com/auth/firebase']
})
- 创建link数据对象
const data = {
"dynamicLinkInfo": {
"domainUriPrefix": "https://myapp.page.link",
"link": "my deeplink",
"androidInfo": {
"androidFallbackLink": "",
"androidLink": "",
"androidMinPackageVersionCode": "",
"androidPackageName": bundleName // android package name, fe my.app.io
},
"iosInfo": {
"iosAppStoreId": `${isi}`, // app store app id
"iosBundleId": bundleName, // ios app bundle id, fe my.app.io
"iosCustomScheme": "",
"iosFallbackLink": "",
"iosIpadBundleId": "",
"iosIpadFallbackLink": ""
},
"navigationInfo": {
"enableForcedRedirect": false
},
"analyticsInfo": {
"googlePlayAnalytics": {
"utmCampaign": "",
"utmMedium": "",
"utmSource": ""
},
"itunesConnectAnalytics": {
"at": "",
"ct": "",
"mt": "",
"pt": ""
}
},
"socialMetaTagInfo": {
"socialDescription": "",
"socialImageLink": "",
"socialTitle": ""
},
},
"name": "Link name column from FDL",
"suffix": {
"customSuffix": "URL_prefix_during_link_creation_from_FDL, "option": "CUSTOM"
}
}
- 调用API
oauth2Client.request({
method: "POST",
url: "https://firebasedynamiclinks.googleapis.com/v1/managedShortLinks:create",
data: data
})
链接:
- https://firebase.google.com/docs/reference/dynamic-links/link-shortener
- https://www.npmjs.com/package/googleapis
- https://googleapis.dev/nodejs/googleapis/44.0.0/firebasedynamiclinks/interfaces/Schema$CreateManagedShortLinkRequest.html
- https://googleapis.dev/nodejs/googleapis/44.0.0/firebasedynamiclinks/classes/Resource$Managedshortlinks.html#source
据我所知,您不能使用任何直接的 REST API,因为您需要针对特定范围的适当的 oauth2 access_token。我试图欺骗 FDL 请求并反映它的行为但没有成功,但这有效。