向Cloud Endpoints HTTP请求添加令牌

时间:2014-12-19 10:43:07

标签: android google-app-engine google-cloud-endpoints

我有一个使用Cloud Endpoints的API,我将其生成的客户端库添加到我的Android应用程序中。

但是我不知道如何将我的身份验证令牌添加到我的请求中。目前,这是我知道如何发送的唯一HTTP请求:

DrinkEndpoint.Builder builder = new DrinkEndpoint.Builder(AndroidHttp.newCompatibleTransport(),new GsonFactory(), null);
            DrinkEndpoint service = builder.build();
            Drink drink = new Drink();
            drink.setName(params[0]);
            response = service.insertDrink(drink).execute();

所以我的问题是:如何修改此代码以添加我的身份验证令牌: 1)在POST请求的正文中 2)或在授权标题

谢谢

1 个答案:

答案 0 :(得分:1)

您应该将GoogleAccountCredential作为最后一个参数

传递
new DrinkEndpoint.Builder(AndroidHttp.newCompatibleTransport(),
            AndroidJsonFactory.getDefaultInstance(), googleAccountCredential);

如何使用G +范围构建凭据的示例:

GoogleApiClient googleApiClient = new GoogleApiClient.Builder(app)
        .addApi(Plus.API)
        .addScope(Plus.SCOPE_PLUS_PROFILE)
        .build();

GoogleAccountCredential googleAccountCredential =
     GoogleAccountCredential.usingAudience(context, "server:client_id:" + WEB_CLIENT_ID);
     googleAccountCredential.setSelectedAccountName(userEmail);

WEB_CLIENT_ID来自Google Developers Console,非常适合您的项目。如果您没有,可以在控制台中创建它(您的项目 - > API& auth - >凭据)。