Google Cloud Endpoints 的网络应用程序客户端 ID 什么是?

Fel*_*lix 5 google-app-engine google-cloud-endpoints

我正在尝试让示例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";
Run Code Online (Sandbox Code Playgroud)

我不确定“网络应用程序客户端 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;
}
Run Code Online (Sandbox Code Playgroud)

这是 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";
}
Run Code Online (Sandbox Code Playgroud)

还有来自 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/";
Run Code Online (Sandbox Code Playgroud)

Dan*_*oet 4

请参阅Android 端点文档的“进行经过身份验证的呼叫”部分。

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

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

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