由于错误403(禁止),Google .NET API失败

时间:2016-11-18 04:13:36

标签: c# google-api google-beacon-platform

我的下面的代码片段应该返回信标列表。当Google API控制台生成API密钥时,我已将我的公共IP地址列入白名单并与api密钥相关联。当代码调用ExecuteAsync()方法时,我一直收到错误代码403(禁止)的异常。我可能做错了什么以及如何缓解这个问题?

public async void TestApiKey()
{
    var apikey = "739479874ABCDEFGH123456"; //it's not the real key I'm using
    var beaconServices = new ProximitybeaconService(new Google.Apis.Services.BaseClientService.Initializer
    {
        ApplicationName = "My Project",
        ApiKey = apikey
    });

    var result = await beaconServices.Beacons.List().ExecuteAsync();

    // Display the results.
    if (result.Beacons != null)
    {
        foreach (var api in result.Beacons)
        {
            Console.WriteLine(api.BeaconName + " - " + api.Status);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您正在使用公共API密钥。公共API密钥仅适用于公共数据。

  

beacons.list使用来自的OAuth访问令牌进行身份验证   登录用户与查看者,是所有者或可以编辑权限。

     

需要以下OAuth范围:
  •https://www.googleapis.com/auth/userlocation.beacon.registry

您尝试访问的方法是访问私人用户数据。您需要先进行身份验证才能使用它。切换到Oauth2身份验证。将它设置为公共可能无法正常工作,因为您无法通过我的知识为公共API密钥提供范围。