在Google Beacon Platform中获取信标列表时接收禁止的错误消息(403)

时间:2016-11-20 15:12:30

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

我为我的Google Proximity API项目创建了一个服务帐户,并下载了密钥文件以在我的应用程序中使用它。但是当执行下面代码片段的最后一行时,我收到以下异常:

  

用户代码未处理Google.GoogleApiException   HResult = -2146233088 Message = Google.Apis.Requests.RequestError   未经授权。 [403]错误[消息[未经授权。]位置[ - ]   原因[禁止]域名[全球]]

这是应该在服务器机器(后端)上运行的代码:

X509Certificate2 certificate = new X509Certificate2(@"key.p12",
                "notasecret", X509KeyStorageFlags.Exportable);

            var credential = new ServiceAccountCredential(
               new ServiceAccountCredential.Initializer("MyServiceId@focal-baton-55555.iam.gserviceaccount.com")
               {
                   Scopes = new[] { "https://www.googleapis.com/auth/userlocation.beacon.registry" },
               }.FromCertificate(certificate));

            var beacon = new Google.Apis.Proximitybeacon.v1beta1.Data.Beacon();

            var beaconServices = new ProximitybeaconService(new BaseClientService.Initializer
            {
                ApplicationName = "My SampleProject",
                HttpClientInitializer = credential 
            });

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

我花了几个小时,但根本无法做出任何结论。在这种情况下我缺少什么以及如何解决问题?

1 个答案:

答案 0 :(得分:0)

我在创建服务帐户时通过提供必要的权限来解决问题。不幸的是,这是我错过的一步。然后我使用相同的.p12文件来验证API的应用程序。