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

Google .NET API fails due to error 403 (forbidden)

我下面的代码片段应该 return 信标列表。当 Google API 控制台生成 API 密钥时,我已将我的 public 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);
        }
    }
}

您正在使用 Public API 密钥。 Public API 键仅适用于 public 数据。

beacons.list Authenticate using an OAuth access token from a signed-in user with viewer, Is owner or Can edit permissions.

Requires the following OAuth scope:
https://www.googleapis.com/auth/userlocation.beacon.registry

您尝试访问的方法是访问私人用户数据。您需要先进行身份验证才能使用它。切换到 Oauth2 身份验证。将其设置为 public 可能不会起作用,因为据我所知,您无法为 public api 键提供范围。