1

我正在尝试Google Proximity API在开发者控制台中注册。我指的是Google Github Link

当前状态:我已经开始使用Google Github 存储库中提供的示例项目。我使用项目的包名称和使用 keytool 实用程序的 SHA1 创建了 android 密钥和 OAuth 客户端 ID。我正在使用与advertisedId谷歌文档中提供的相同。

我被困在哪里:每当我尝试在 Google API Explorer 中测试 API 时,它都会抛出错误The API Key and the authentication credential are from different projects.

要求 :

POST https://proximitybeacon.googleapis.com/v1beta1/beacons:register?fields=advertisedId%2Cstatus&key=my_android_api_key    

{
    "advertisedId":
    {
        "id": "Fr4Z98nSoW0hgAAAAAAAAg==",
        "type": "EDDYSTONE"
    },
    "status": "ACTIVE"
}

回复 :

400 OK  

{
    "error":
    {
        "code": 400,
        "message": "The API Key and the authentication credential are from different projects.",
        "status": "INVALID_ARGUMENT"
    }
}

在此处输入图像描述

我已经仔细检查了所有的包名称。它们来自我从Google 存储库下载的同一个项目。

任何线索都会有所帮助。

4

3 回答 3

1

因此,几乎可以肯定,问题在于您正在以一个用户(Google 帐户)身份验证对 API 的调用,但该项目是由另一个用户的帐户创建的。

你有两个选择:

  1. 使用拥有该项目的同一 Google 帐户验证对服务器的请求。
  2. 将正在对项目进行身份验证的用户添加为允许对其进行调用的人。

在这种情况下,“验证用户”是应用程序的当前活动 Google 帐户(如果您正在运行 Android 示例)或登录的用户(如果您使用的是 iOS)。问题是帐户不在有权访问/修改项目的帐户列表中。我相信 Android 应用程序可以让您根据需要选择/切换用户,而 iOS 应用程序肯定有一个注销按钮。

于 2016-02-03T20:38:21.697 回答
1

当您尝试使用不同类型的应用程序(在本例中为 Android)的凭据从 Web 应用程序访问 API 时,会导致此类错误。当您在 google 开发者控制台中创建 android 项目时,您创建的 OAuth2.0 和 API Key 在调用 Proximity Beacon API 时将需要您的实际 android 应用程序。在您的 android 应用程序中创建方法以使用 RESTful 调用(即 beacon.register等)到 API。您将能够从您的 android 应用程序注册您的信标。我发现此链接非常有用:Google-Proximity-Beacons---Part-1

于 2016-02-05T07:46:28.740 回答
0

您不需要同时提供 OAuth 客户端和 API 密钥。我建议只使用一个,然后您不必担心 OAuth 客户端和密钥属于不同的项目。

于 2016-02-04T04:17:51.623 回答