通过 API 创建短链接并获取“API 密钥无效。请传递有效的 API 密钥”

Posted

技术标签:

【中文标题】通过 API 创建短链接并获取“API 密钥无效。请传递有效的 API 密钥”【英文标题】:Creating short link through API and getting "API key not valid. Please pass a valid API key" 【发布时间】:2021-09-03 10:30:39 【问题描述】:

我想通过 Firebase 创建一个短链接。我正在传递一个用于通知的有效 API 密钥。但我收到一个错误:API 密钥无效

回复是:


    "success": true,
    "message": "Link is genereated successfully",
    "data": 
        "error": 
            "code": 400,
            "message": "API key not valid. Please pass a valid API key.",
            "status": "INVALID_ARGUMENT",
            "details": [
                
                    "@type": "type.googleapis.com/google.rpc.ErrorInfo",
                    "reason": "API_KEY_INVALID",
                    "domain": "googleapis.com",
                    "metadata": 
                        "service": "firebasedynamiclinks.googleapis.com"
                    
                
            ]
        
    

我的控制器是

class ShortLinkController < ApplicationController

    def create

        response = nil
        firebase_server_api_key = Rails.application.secrets.firebase_server_api_key
        response = HTTParty.post("https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=#firebase_server_api_key",
                  :body => JSON.generate(
                      
                      
                    dynamicLinkInfo: 
                        domainUriPrefix: 'https://example.page.link',
                        link: 'https://example.page.link/?username=\(/user?.username)&user_id=\(/user?.id',

                        androidInfo: 
                        androidPackageName: 'com.abc.example'

                        ,
                        iosInfo: 
                        iosBundleId: 'com.example.abc',
                        iosFallbackLink: 'https://apps.apple.com/in/app/example/id1528494636',
                        iosAppStoreId: '1528494636'
                        
                        

                      


                  ),
                  :headers =>  "Content-Type" => "application/json"
                  )

        render_success message: "Link is generated successfully", data: response

    end

end

创建 URL 时 你能帮我弄清楚我错过了什么/做错了吗

【问题讨论】:

您在错误响应中说明了原因 - API 密钥无效。你真的发送了正确的 API 密钥吗?和在 Firebase 注册的一样吗? 我使用的 API 密钥与在 Firebase 中用于通知的 API 密钥相同 我也会这么说,你能仔细检查一下 API 密钥是否仍然有效吗?也许到达另一个端点...... 【参考方案1】:

我不确定您使用的是哪个 API 密钥,但 Firebase 配置有许多在客户端应用程序中使用的密钥。例如,这些键允许您使用动态链接,但它们不一定允许您使用它们创建新的动态链接。

找到 REST API 密钥的正确位置在 creating links with the REST API 上的 Firebase 文档中描述为:

    获取您的 API 密钥。您将需要一个 API 密钥来验证您对 API 的请求。要查找您的 API 密钥:

      打开 Firebase 控制台的设置页面。如果系统提示您选择项目,请从菜单中选择您的 Firebase 项目。

      记下 Web API Key 字段的值。

【讨论】:

以上是关于通过 API 创建短链接并获取“API 密钥无效。请传递有效的 API 密钥”的主要内容,如果未能解决你的问题,请参考以下文章

MailChimp 错误状态:401 标题:“API 密钥无效”

为啥它说我使用 RapidAPI 的 API 密钥无效?

更改了 Firebase 项目,它给了我错误 [ API 密钥无效。请传递有效的 API 密钥。 ] 身份验证期间

使用 Firebase 提供的 API 密钥无效

Fabric API 密钥无效

简单获取新浪短网址API接口的方法(附PHP请求示例)