GoogleCredential 缺少访问令牌
GoogleCredential Missing Access Token
我正在使用服务帐户模型和 Google 的 Java API 来检索和修改用户。
我能够使用类似于 Google 示例的代码成功创建 GoogleCredential 对象:
GoogleCredential googleCredential = new GoogleCredentialBuilder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountUser(SERVICE_ACCOUNT_USER)
.setServiceAccountPrivateKeyFromP12File(P12_PRIVATE_KEY_FILE)
.setServiceAccountScopes(Collections.singleton(GLOBAL_USER_AND_ALIAS_SCOPE)
.build();
我在任何示例中都没有看到我必须显式创建访问令牌,所以我一直假设上面的代码会处理这个问题。是真的吗?
之后,我成功创建了一个目录实例,然后尝试检索特定用户:
User user = new User();
user = directory.users().get(uid).execute();
失败,抛出 NullPointerException。
当我在调用获取用户对象之前检查 GoogleCredential 对象时,它似乎不包含访问令牌:
accessToken = null
refreshToken = null
我错过了什么?
如何使用服务帐户模型获取访问令牌?
提前致谢。
你从哪里得到你的accessToken?尝试
credential.refreshToken();
accessToken = credential.getAccessToken();
此外,您应该 运行 在 Oauth2 Playground 中考虑您的凭据。如果它在 playground 中有效,那么你的实现可能有问题。
安迪是正确的。 Google Java API 的示例省略了这个关键步骤。在运行时,Google 代码抛出一个 NullPointerException,没有其他细节可以确定它发生的位置。通过 Eclipse 中的调试器可以清楚地看到 GoogleCredential.
中的令牌为空
我正在使用服务帐户模型和 Google 的 Java API 来检索和修改用户。
我能够使用类似于 Google 示例的代码成功创建 GoogleCredential 对象:
GoogleCredential googleCredential = new GoogleCredentialBuilder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountUser(SERVICE_ACCOUNT_USER)
.setServiceAccountPrivateKeyFromP12File(P12_PRIVATE_KEY_FILE)
.setServiceAccountScopes(Collections.singleton(GLOBAL_USER_AND_ALIAS_SCOPE)
.build();
我在任何示例中都没有看到我必须显式创建访问令牌,所以我一直假设上面的代码会处理这个问题。是真的吗?
之后,我成功创建了一个目录实例,然后尝试检索特定用户:
User user = new User();
user = directory.users().get(uid).execute();
失败,抛出 NullPointerException。
当我在调用获取用户对象之前检查 GoogleCredential 对象时,它似乎不包含访问令牌:
accessToken = null
refreshToken = null
我错过了什么?
如何使用服务帐户模型获取访问令牌?
提前致谢。
你从哪里得到你的accessToken?尝试
credential.refreshToken();
accessToken = credential.getAccessToken();
此外,您应该 运行 在 Oauth2 Playground 中考虑您的凭据。如果它在 playground 中有效,那么你的实现可能有问题。
安迪是正确的。 Google Java API 的示例省略了这个关键步骤。在运行时,Google 代码抛出一个 NullPointerException,没有其他细节可以确定它发生的位置。通过 Eclipse 中的调试器可以清楚地看到 GoogleCredential.
中的令牌为空