我试图从我的Java应用引擎模块访问Google Analytics(分析)API

我有以下代码来检索凭证。

public HttpRequestInitializer getCredentials() throws GeneralSecurityException, IOException {

    HttpRequestInitializer httpRequestInitializer;

    if (com.google.appengine.api.utils.SystemProperty.environment.value() == com.google.appengine.api.utils.SystemProperty.Environment.Value.Development) {

        String certificate = "/token.p12";
        File privateKey = null;

        try {
            privateKey = new File(getClass().getResource(certificate).toURI());
        } catch (URISyntaxException e) {
            log.log(Level.SEVERE, e.getMessage(), e);
        }

        httpRequestInitializer = new GoogleCredential.Builder()
                .setTransport(new NetHttpTransport())
                .setJsonFactory(new JacksonFactory())
                .setServiceAccountId("[email protected]")
                .setServiceAccountPrivateKeyFromP12File(privateKey)
                .setServiceAccountScopes(Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY))
                .build();

    } else {

        httpRequestInitializer = new AppIdentityCredential(Arrays.asList(AnalyticsScopes.ANALYTICS_READONLY));

    }

    return httpRequestInitializer;
}


我已经在云开发控制台中为该项目启用了分析API。在Google Analytics(分析)中,我授予了服务帐户读取权限。 Google Analytics(分析)所使用的Google帐户与我用于Google Cloud的帐户相同。

无论如何,当使用App Engine开发服务器时,此代码有效,我可以点击api(使用客户端库)。但是,当从App Engine本身运行并使用AppIdentityCredential时,尝试访问API时出现以下异常。

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403         OK
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "User does not have any Google Analytics account.",
"reason" : "insufficientPermissions"
} ],
"message" : "User does not have any Google Analytics account."
}


我假设AppIdentityCredential身份验证为拥有app引擎项目的用户,但是我猜不是吗?

我想使用AppIdentityCredential,因为据我了解,建议将其用于生产实例。

如何使用AppIdentityCredential并使用它访问分析api

最佳答案

嗯,我知道了。

应用程序引擎项目与[email protected]的标识/帐户绑定。在分析设置中授予该帐户访问权限,使应用引擎代码可以使用AppIdentityCredential访问该帐户

关于java - 来自App Engine的AppIdentityCredential权限不足的Analytics API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30067475/

10-10 20:21