4

我正在尝试让示例android 客户端工作。

我被困在设置说明的第 4 步:

更新 src/com/google/devrel/samples/ttt/ClientCredentials.java 中的 AUDIENCE 值,将字符串“your_web_client_id”替换为您在 API 控制台中注册的 Web 应用程序客户端 ID。

这是我需要更改的代码行:

public static final String AUDIENCE = "server:client_id:your_web_client_id";

我不确定“Web 应用程序客户端 ID”是什么意思。我在 GAE 上启动并运行了 Java 后端,但没有对 API 控制台做任何事情。

有任何想法吗?


编辑

这是 java 后端的客户端 ID 代码:

/**
 * Contains the client IDs for allowed clients consuming the tictactoe API.
 */
public class Ids {
  public static final String WEB_CLIENT_ID = "240003018828.apps.googleusercontent.com";
  public static final String ANDROID_CLIENT_ID = "240003018828-rp5ahj5b1eo76g55m1qtq4vvm57dqoj6.apps.googleusercontent.com";
  public static final String IOS_CLIENT_ID = "replace this with your iOS client ID";
  public static final String ANDROID_AUDIENCE = WEB_CLIENT_ID;
}

这是android项目中的客户端ID代码:

public class ClientCredentials
{
    public static final String AUDIENCE = "server:client_id:240003018828-rp5ahj5b1eo76g55m1qtq4vvm57dqoj6.apps.googleusercontent.com";
    // public static final String AUDIENCE = "server:client_id:your_web_client_id";
}

也来自android项目:

  /**
   * The default encoded root URL of the service. This is determined when the library is generated
   * and normally should not be changed.
   *
   * @since 1.7
   */
  public static final String DEFAULT_ROOT_URL = "https://sample-ttt.appspot.com/_ah/api/";
4

2 回答 2

4

请参阅适用于 Android 的 Endpoints 文档的进行身份验证调用部分。

在Google API 控制台中为您的项目添加第二个客户端 ID 。去做这个:

  1. 在控制台内您的项目的 API 访问选项卡中,单击创建另一个客户端 ID。
  2. 项目清单
  3. 在 Create Client ID 表单中,选择 Installed application 作为应用程序类型,并选择 Android 作为已安装应用程序类型。
  4. 在标有包名称的文本框中输入您的 Android 应用程序包名称。
  5. 在标记为签名证书指纹的文本框中,输入您刚刚生成的调试或发布密钥。
  6. 单击创建客户端 ID。

它提到了第二个客户端 ID,因为您还需要为 Web 应用程序创建一个。在该过程结束时,您应该有两个客户端 ID:一个用于 Android,一个用于 Web。您在后端代码中使用两个客户端 ID,但在您的 Android 代码中仅包含后一个客户端 ID(通过特殊格式的字符串)。

于 2013-02-19T23:53:45.983 回答
1

您是否使用 Web 应用程序 ID 更新了应用引擎后端中的 AUDIENCE 字段?要从 Android 客户端使用 GCE,您还需要在 @Api 注释中更新 Audience 字段,使用您在 API 控制台中注册的 Web 应用程序 ID(不是 android 客户端 ID)。

于 2013-02-28T13:00:42.167 回答