gpt4 book ai didi

java - 尝试从 Java 使用 oAuth2 访问 Picasaweb API 时出现错误 "Invalid token: Cannot parse referred token string"

转载 作者:行者123 更新时间:2023-12-01 11:26:40 25 4
gpt4 key购买 nike

尝试使用 Java 连接到 Picasaweb API 时,出现此错误:

com.google.gdata.util.ServiceForbiddenException: Forbidden
Token invalid - Invalid token: Cannot parse referred token string
at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:605)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
at com.google.gdata.client.Service.insert(Service.java:1409)
at com.google.gdata.client.GoogleService.insert(GoogleService.java:613)
at com.google.gdata.client.media.MediaService.insert(MediaService.java:380)

这是我的代码:

final String[] SCOPESArray = { "https://picasaweb.google.com/data/" };
final List SCOPES = Arrays.asList(SCOPESArray);
final GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(new NetHttpTransport())
.setJsonFactory(new JacksonFactory())
.setServiceAccountId("xxx@developer.gserviceaccount.com")
.setServiceAccountScopes(SCOPES)
.setServiceAccountPrivateKeyFromP12File(new File("key.p12")).build();
final PicasawebService picasaService = new PicasawebService("toto");
picasaService.setOAuth2Credentials(credential);
picasaService.insert(new URL(FEED_URL), album);

我认为缺少某些内容,服务帐户和 Picasa 帐户之间的链接是如何建立的?我尝试在范围内添加 url,例如 https://picasaweb.google.com/data/entry/api/user/ ” + USER_ID 或“https://picasaweb.google.com/data/feed/api/user/ "+ USER_ID,但没有成功...

我希望避免每次应用程序访问 Picasa 相册时出现“用户同意”对话框。

我没有找到 PicasaWeb API 和 oAuth2 的示例,所以如果有人有想法......谢谢!

编辑:我找到了有关“将域范围权限委派给服务帐户”的信息 https://developers.google.com/identity/protocols/OAuth2ServiceAccount它可以使用 setServiceAccountUser("user@example.com") 执行我想要的操作,但它似乎仅适用于 Google Apps 域。

最佳答案

服务帐户和 Picasa 帐户之间的关联是如何建立的?

没有链接。对于 Google 而言,服务帐户和 Picasa 帐户是两个不同的用户。您可能(我猜测是因为您没有解释您的用例)不想使用服务帐户。

将 Picasa API 和 OAuth 视为两个完全独立的学习练习。将 OAuth 视为引导您拥有访问 token 的东西,然后将 Picasa API 视为您将访问 token 插入其中的东西。尝试使用 OAuth Playground ( https://developers.google.com/oauthplayground/ ) 来模拟您想要实现的目标。这将教您有关 OAuth 所需了解的所有信息,并向您展示 http 请求应该是什么样子,您随后可以将其与您的应用程序进行比较。

关于java - 尝试从 Java 使用 oAuth2 访问 Picasaweb API 时出现错误 "Invalid token: Cannot parse referred token string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30761031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com