我为我的应用程序创建了一个API密钥,并按照此处列出的示例(https://developers.google.com/api-client-library/dotnet/get_started#simple)传递了它。我收到 Google.Apis.Requests.RequestError来电者没有权限。我可能会缺少什么?
源代码
var service = new SheetsService(new BaseClientService.Initializer()
{
ApplicationName = "Application",
ApiKey = WebConfigurationManager.AppSettings["GoogleSheetsAPIKey"]
});
// Define request parameters.
string spreadsheetId = "[omitted]";
string range = "Sheet1";
SpreadsheetsResource.ValuesResource.GetRequest request =
service.Spreadsheets.Values.Get(spreadsheetId, range);
ValueRange response = request.Execute();
IList<IList<Object>> values = response.Values; // bombs here
if (values != null && values.Count > 0)
{
Console.WriteLine("Name, Major");
foreach (var row in values)
{
// Print columns A and E, which correspond to indices 0 and 4.
Console.WriteLine("{0}, {1}", row[0], row[4]);
}
}
else
{
Console.WriteLine("No data found.");
}
我的api密钥已创建且“无限制”
答案 0 :(得分:2)
问题在于此电子表格位于我的Google帐户下。通过公开我的Google电子表格share
&gt; advanced
&gt; public on the web
,上面的代码有效。 (由于这不是敏感数据,我可以将此电子表格公之于众
答案 1 :(得分:0)
通过删除文件“Google.Apis.Auth.OAuth2.Responses.TokenResponse-user”解决了我的问题 - 在方法GoogleWebAuthorizationBroker.AuthorizeAsync(...)中生成