gpt4 book ai didi

Java、Google 表格 API : AuthSub token has wrong scope

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:48 25 4
gpt4 key购买 nike

我正在关注有关 Google Sheets API 的文档,但无法使其正常工作。当我尝试访问电子表格时,出现以下错误:

Exception in thread "main" com.google.gdata.client.GoogleService$SessionExpiredException: Token invalid - AuthSub token has wrong scope
<HTML>
<HEAD>
<TITLE>Token invalid - AuthSub token has wrong scope</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Token invalid - AuthSub token has wrong scope</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

带有代码:

SpreadsheetService sheetService = new SpreadsheetService("App-v1");

sheetService.setProtocolVersion(SpreadsheetService.Versions.V3);
sheetService.setOAuth2Credentials(DriveService.getCredential());

URL mFeedURL = new URL(SPREADSHEET_FEED);
SpreadsheetFeed feed = sheetService.getFeed(mFeedURL, SpreadsheetFeed.class);

但是当我从 Google 云端硬盘检索文件名时,一切都很顺利。

<小时/>

我正在使用的范围和提要网址:

SPREADSHEET_FEED = "https://spreadsheets.google.com/feeds/spreadsheets/private/full"

SCOPES = Arrays.asList(DriveScopes.DRIVE_METADATA_READONLY,
"https://spreadsheets.google.com/feeds/"
);

这是具有权限或 token 的东西还是只是错误的实现?

最佳答案

解决了。不知何故,该错误是由 DataStoryFactory 对象在以下代码段中引发的:

GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(DATA_STORE_FACTORY)
.setAccessType("offline")
.build();

FileDataStoreFactory 对象使用位于以下目录中的“StoredCredential”文件:

$HOME/.credentials

所以,我需要做的就是删除该目录,以便它可以再次创建它。之后它会进行回调并要求您在 Google Console 中授予应用程序权限,现在它可以正常工作了。或者您可以通过以下方法更改 userId:

Credential mCredential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver())                        .authorize("user");

关于Java、Google 表格 API : AuthSub token has wrong scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121847/

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