2013-02-19 104 views
4

我正在尝试使示例android client正常工作。什么是Google Cloud Endpoints的Web应用程序客户端ID?

我停留在的安装说明第4步:用

更新中的src/COM观众的值/谷歌/ devrel /样品/ TTT/ClientCredentials.java,替换字符串 “your_web_client_id”您在API控制台中注册的Web应用程序客户端ID。

这是我需要改变的代码行:由“网络应用客户端ID”

public static final String AUDIENCE = "server:client_id:your_web_client_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

查看适用于Android的Endpoints文档的Making Authenticated Calls部分。

Google API Console中为您的项目添加第二个客户端ID。至 是这样做的:

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

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

+0

好的,这是有道理的。这是否意味着我需要在API控制台中有一个项目?因为现在我只有java后端项目和android客户端项目,都构成github。 – Felix 2013-02-20 00:12:08

+0

是的,您应该在API控制台中创建一个项目。 – 2013-02-20 00:50:36

+0

好吧,我创建了两个客户端ID并将它们放入项目中。现在,当Android尝试连接到java后端时,我得到一个GoogleAuthIOException。这是否意味着我有一个错误的ID?我是否需要在API控制台中为我的项目启用一些服务? – Felix 2013-02-20 01:22:28

1

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

相关问题