【问题标题】:How to programmatically access the Google API key in google-services.json如何以编程方式访问 google-services.json 中的 Google API 密钥
【发布时间】:2016-05-16 11:30:23
【问题描述】:

该应用使用 Google Cloud Messaging 并包含一个 google-services.json 文件,该文件本身包含 Google API 身份验证信息,包括 API 密钥。 GCM 按预期运行。

该应用包含一个使用 HTTP 发送 GCM 消息的测试工具,它需要 API 密钥。如何访问存储在 google-services.json 中的那个密钥?我不想使用 GoogleCloudMessaging 发送消息(我正在使用 OkHttp,它可以很好地完成工作)。

希望没有必要在应用中复制它。

【问题讨论】:

    标签: android google-api google-cloud-messaging google-play-services


    【解决方案1】:

    抱歉,这里游戏有点晚了……

    google-services.json 文件被解析,其值被添加到您可以访问的xmlhttps://developers.google.com/android/guides/google-services-plugin

    在您的情况下,您可以通过以下方式获取 api 密钥: activity.getResources().getString(R.string.google_api_key);

    【讨论】:

    • 感谢您的回答,这非常有效。尽管 Android Studio IDE 会标记 String 资源不存在,但当您构建应用时,它就会变得可用。
    【解决方案2】:

    您可以从您的 GoogleCloud 平台获取 API 密钥,然后转到凭据,然后您就可以从那里获取您的 API 密钥。 https://console.developers.google.com/

    这就是你要找的吗?

    但是如果您需要访问它(除非您更改 json 文件本身,否则它永远不会更改)然后您可以使用解析器解析 json 文件。但这增加了比需要更多的工作。我只是从网上复制并粘贴它。

    好的,我知道您打算尝试使用它并使用 NSDefualts 像这样存储令牌:

     if (registrationToken != nil) {
            self.registrationToken = registrationToken
            print("Registration Token: \(registrationToken)")
            //store the registation token for use in the postData function in the login page
            self.loginInformation.setObject(self.registrationToken, forKey: "GCMToken")
            let userInfo = ["registrationToken": registrationToken]
    

    并像这样在项目的任何地方检索它:

    myNoteGCMID = loginInformation.objectForKey("GCMToken") as! String
    

    然后,如果它发生变化,您不必更改它,只需更改一个地方。变化会发生在你所称的任何地方。

    【讨论】:

    • 我有钥匙,那不是问题。它已经存储在项目中,但我自己的代码也需要密钥 - 结果是密钥最终存储在两个地方,如果需要更改,必须记住两次更新它是不好的地方。
    • 您更新的答案似乎是指推送消息注册ID,但我要访问的是API密钥?
    • 如果它与 GCM api 类似,您的代码应该从 json 文件中获取它,并且您不必对其进行硬编码。我环顾四周,唯一的方法是将它从 Google 控制台中取出并将其放入您的代码中,或者从 google 服务文件中取出它。我想您可以自己解析它,它只是一个 json 文件。所以只需指向它的存储位置并有一个方法将它从文件中解析出来
    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多