C#Google.Apis.Requests.RequestError调用方没有权限

时间:2016-11-20 22:24:39

标签: c# google-sheets-api

我为我的应用程序创建了一个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密钥已创建且“无限制”

2 个答案:

答案 0 :(得分:2)

问题在于此电子表格位于我的Google帐户下。通过公开我的Google电子表格share&gt; advanced&gt; public on the web,上面的代码有效。 (由于这不是敏感数据,我可以将此电子表格公之于众

答案 1 :(得分:0)

通过删除文件“Google.Apis.Auth.OAuth2.Responses.TokenResponse-user”解决了我的问题 - 在方法GoogleWebAuthorizationBroker.AuthorizeAsync(...)中生成