4

在端点 App Engine 后端,我该如何设置

@Api(name=...
     clientIds = {what-goes-here-exactly-1},
     audiences = {what-goes-here-exactly-2}
)

在Android客户端中,我究竟该如何设置

credential = GoogleAccountCredential.usingAudience(this,
           what-goes-here-exactly-3);

这里有冲突/混淆/不清楚的说明http://devthots.blogspot.com/ 和这里https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls

我在我的 API 控制台的 API 访问中生成了很多密钥,但不确定如何使用它们并附加/前置它们以在上述语句中使用。

谢谢。

4

1 回答 1

6

在您的后端,您将包括:

@Api(
  name = "myapi",
  version = "v1",
  clientIds = {Ids.WEB_CLIENT_ID, Ids.ANDROID_CLIENT_ID},
  audiences = {Ids.ANDROID_AUDIENCE}
)

这些常量被定义为:

public class Ids {
  public static final String WEB_CLIENT_ID = "12345.apps.googleusercontent.com";
  public static final String ANDROID_CLIENT_ID = "12345-abc.apps.googleusercontent.com";
  public static final String ANDROID_AUDIENCE = WEB_CLIENT_ID;
}

使用上述值,您将在 Android 代码中使用的代码是:

credential = GoogleAccountCredential.usingAudience(this,
    "server:client_id:" + Ids.ANDROID_AUDIENCE);
于 2013-03-07T19:13:52.903 回答