是否可以使用Firebase动态链接指定短链接?

uyhoqukh  于 2023-02-05  发布在  其他
关注(0)|答案(3)|浏览(161)

这个问题是关于我认为REST API(无论如何来自文档)和通过Firebase控制台提供的行为之间的差异。
这是控制台:
第一节第一节第一节第一节第一次
然而当我查看REST API docs时,我没有看到任何方法可以从Firebase控制台执行步骤(1)。我没有看到任何方法可以设置一个短URL链接,而是看起来会生成它。这是一个遗憾,因为我想生成猜测的链接。作为参考,这里是他们的规范,没有平台特定的信息键(例如“iosInfo”):

{
  "dynamicLinkInfo": {
    "domainUriPrefix": string,
    "link": string,
  },
  "suffix": {
    "option": "SHORT" or "UNGUESSABLE"
  }
}

有没有办法通过API复制控制台的行为?

ctehm74n

ctehm74n1#

我可以使用节点中的API在Firebase动态链接中创建持久链接。
1.创建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']
})

1.创建链接数据对象

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"
        }
    }

1.调用API

oauth2Client.request({
        method: "POST",
        url: "https://firebasedynamiclinks.googleapis.com/v1/managedShortLinks:create",
        data: data
    })

链接:

据我所知,您不能使用任何直接的REST API,因为您需要适当的oauth2 access_token用于特定的作用域。我试图欺骗FDL请求并反映它的行为,但没有成功,但这起作用了。

6ljaweal

6ljaweal2#

不能为通过API创建的短链接设置自定义后缀。如果您有更多关于您的用例的详细信息,我建议将其作为特性请求https://firebase.google.com/support提交

zqry0prt

zqry0prt3#

可以为创建的短链接设置自定义后缀。我们称之为托管短链接。
使用lisek建议的方法,为了便于理解,这里有来自google dev的最新文档链接。

  1. https://googleapis.dev/nodejs/googleapis/latest/firebasedynamiclinks/interfaces/Schema$CreateManagedShortLinkRequest.html
  2. https://googleapis.dev/nodejs/googleapis/latest/firebaseddynamiclinks/类/资源$管理的短链接.html#源代码

相关问题