如何以编程方式访问google-services.json中的Google API密钥

时间:2016-05-16 11:30:24

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

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

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

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

2 个答案:

答案 0 :(得分:20)

对不起,这里游戏有点晚了......

解析google-services.json文件并将其值添加到您有权访问的xmlhttps://developers.google.com/android/guides/google-services-plugin

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

答案 1 :(得分:0)

您只需从您的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

然后,如果它发生变化,你不必改变它,只需要改变一个地方。您可以在任何地方进行更改。