我使用c#访问Google电子表格。
实际上,他们有3种方法可以从https://console.developers.google.com/访问点差。
我正在使用服务帐户凭据访问Google电子表格。我在https://console.developers.google.com/创建了一个项目,我启用了工作表API,我还创建了新的服务帐户凭据,P-12文件已下载到我的机器。 在下面显示的特定代码点
SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range);
ValueRange response = request.Execute();
当我尝试从Google Spread表中提取数据时,它会通过授权流程,该流程似乎正常运行。然后它失败了:
类型' Google.GoogleApiException'未处理的例外情况发生在 Google.Apis.dll其他信息: Google.Apis.Requests.RequestError调用方没有权限 [403]错误[ 消息[呼叫者没有权限]位置[ - ]原因[禁止]域[全局]]
我几个小时一直在努力。我已经仔细检查了凭据的使用情况,并在Google Spread表上获得了授权。我错过了什么吗?
答案 0 :(得分:1)
我很确定,此问题是由错误的授权范围引起的。在许多情况下,以官方API文档为指导,您可以看到此代码
const string credPath = "token.json";
credential = GoogleWebAuthorizationBroker
.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true))
.Result;
在这些示例中,您指定最后一个参数以将某些身份验证数据保存到credPath变量定义的文件夹中。请注意,如果您要在运行应用一次后更改范围,则该身份验证数据不会被覆盖,因此您必须:
答案 1 :(得分:0)