C# Google 地理编码:即使遵循所需的步骤,也会不断拒绝权限

Posted

技术标签:

【中文标题】C# Google 地理编码:即使遵循所需的步骤,也会不断拒绝权限【英文标题】:C# Google Geocoding: Constantly Getting Permission Denied Even When following the Steps Required 【发布时间】:2021-04-01 16:10:49 【问题描述】:

我正在创建一个应用程序,它需要将街道号码转换为纬度和经度,以便在地图上显示。我决定使用 Google 的地理编码 API。

对于初学者 - 我在控制台中创建了一个基本应用程序,它将给定的街道号码转换为纬度和经度值。

我还在 Google API 控制台中创建了一个 API 密钥。

Geocoding.IGeocoder geocoder = new GoogleGeocoder()  ApiKey = "my api key" ;
            IEnumerable<Address> addresses =  await geocoder.GeocodeAsync("1600 pennsylvania ave washington dc");
            Console.WriteLine("Formatted: " + addresses.First().FormattedAddress);
            Console.WriteLine("Coordinates: " + addresses.First().Coordinates.Latitude + ", " + addresses.First().Coordinates.Longitude);

            Console.ReadKey();

运行应用程序时 - 我收到以下异常:

Geocoding.Google.GoogleGeocodingException: 'There was an error processing the geocoding request. See Status or InnerException for more information.'

InnerException 中没有任何信息 - 所以我检查了状态,它说:

RequestDenied - 幸好这是一个常见问题 - 所以我去以下页面寻找解决方案:

首先我确保 Google Cloud Console 中的 Places API 已启用/激活 - 它已激活。

我检查了我的关键参数是否有任何问题 - 但我找不到任何问题 - 似乎很好。我生成了一个新的 api 密钥以防万一,但它仍然不起作用。

我还检查了 API 密钥是否已正确设置 - 我创建了一个 不受限制的新 API 密钥,但我仍然遇到同样的问题。

我已经完成了这里的每一步,但我仍然遇到同样的问题:请求被拒绝。

我不知道我是否错过了一个非常重要的步骤,但现在我不知道该怎么做。我已经尝试了小时几个小时来解决这个问题,但无济于事。

我不知道问题的根源是什么 - 我向任何可以帮助我的人提供 100 名声望。

谢谢,

tommy99

【问题讨论】:

当您访问此 URL 并填写您的 API 密钥时会发生什么? : "maps.googleapis.com/maps/api/geocode/…" 先让它工作.... 查看以下文章,这可能会解决您的问题。 ***.com/a/32998566/14882929 首先使用此链接检查您的 api kye 如果您能够获得结果,那么您的代码可能存在一些问题。 maps.googleapis.com/maps/api/geocode/… 【参考方案1】:

你每秒发送多少个请求? 我在usage limit documentation中发现了这个使用限制

虽然您不再受限于每天的最大请求数 (QPD),但使用 Places API 时仍适用以下使用限制:

速率限制为每秒 100 个请求 (QPS)。它计算为使用同一项目的凭据的所有应用程序的客户端和服务器端请求的总和。

【讨论】:

【参考方案2】:

正如@emert117 所述,您可能已达到使用限制。此外,谷歌在某些国家和某些 IP 地址的服务有限。您可能需要确保请求不会通过具有受限 IP 地址的 *** 或代理,或者不是来自受限国家/地区。

不过,这些线程可能有更多有用的 cmets:

    Google Geocoding API - REQUEST_DENIED

    Does Geocoder gem work with google API key?

【讨论】:

以上是关于C# Google 地理编码:即使遵循所需的步骤,也会不断拒绝权限的主要内容,如果未能解决你的问题,请参考以下文章

如何将c#中的变量传递给前端

C# 中的 Google 地理编码 Json 解析问题

有关如何在 c# 中为 Windows 7 任务栏编码所需的信息

使用搅拌机,设计行走的人动画并导出为 JSON 所需的编码步骤是啥

使用 C# 发送邮件所需的信息? [关闭]

即使缺少所需的值,Django 验证也会调用 clean()