Google api 此IP、站点或移动应用程序无权使用此API密钥
我在用什么?链接服务器密钥和用户IP以查找任何地址的纬度和经度,当我尝试查找错误时 我有一个来自谷歌的服务器访问密钥,我把我服务器的IP地址放在了他们的白名单中 我试图通过PHP CURL访问的URL是: 我得到的结果是:Google api 此IP、站点或移动应用程序无权使用此API密钥,google-api,google-places-api,Google Api,Google Places Api,我在用什么?链接服务器密钥和用户IP以查找任何地址的纬度和经度,当我尝试查找错误时 我有一个来自谷歌的服务器访问密钥,我把我服务器的IP地址放在了他们的白名单中 我试图通过PHP CURL访问的URL是: 我得到的结果是: Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status
Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)
是否有任何需要配置的内容。地理编码API也会打开。除了分配给您的API密钥外,Google还通过查看
引用人或IP地址来验证传入请求的来源。要在curl中运行示例,请在中创建一个新的服务器密钥。创建时,必须提供服务器的IP地址。在这种情况下,它将是您的。创建服务器密钥
并将IP地址列入白名单后,您应该能够在curl中使用新的API密钥
我猜您可能将API密钥创建为浏览器密钥
,它不要求您将IP地址列入白名单,而是使用referer
HTTP头标记进行验证。默认情况下,curl不发送此标记,因此Google无法验证您的请求。您在没有referer的情况下创建了一个密钥
不要输入引用者地址我也有同样的问题,我发现了这个问题。
在url上,它最终需要服务器密钥,而不是应用程序的api密钥
基本上,您只需在URL的末尾添加服务器密钥,如下所示:
现在,要获取服务器密钥,只需执行以下步骤:
1)转到开发人员控制台
2)在凭证中的“公共API访问”下,创建新密钥
3)从选项中选择服务器密钥
4)在字段中输入您的IP地址,如果您有更多的IP地址,您只需在每一行上添加即可。注意:仅当您想将IP地址用于测试目的时,才输入IP地址。否则,请将IP地址部分留空
5)完成后,单击“创建”,将生成新的服务器密钥,然后您可以将该服务器密钥添加到URL中
<>最后一点是,不要把感应器=真的放在URL的中间,你可以这样把它添加到结尾:
这肯定会解决问题,只需记住使用Places API的服务器密钥即可
编辑
我相信这个网址在过去几年里已经改变了。您现在可以从这里访问开发者控制台-
- 导航到开发者控制台-或使用“详细信息”中的链接直接导航到API仪表板
- 在开发者控制台下,从左侧导航面板中查找标签
- 选择项目
- 从左侧导航面板中选择凭据
- 您可以根据需要从顶部导航栏创建凭证类型
希望这个答案能对你和其他观众有所帮助。祝你好运……) Google Place API要求在进行API调用时包含referer HTTP头
包含HTTP头“Referer:yourdomain.com”,这将解决响应问题。还应为给定项目启用相应的API
https://console.developers.google.com/apis/library?project=projectnamehereGoogle Places API目前不支持从Google API控制台生成的Android或iOS密钥。当前仅支持服务器键和浏览器键
url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY
仅在AppDelegate中添加
GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")
并删除此url中的密钥
现在url是
https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving
选择键
API限制选项卡
选择API密钥
拯救
选择应用程序限制->无
拯救
对于最新版本的API,我的情况似乎正好相反
调用url时https://maps.googleapis.com/maps/api/geocode/json?address=
有一次我将订单切换到https://maps.googleapis.com/maps/api/geocode/json?key=&address=
它工作得很好
请注意,上面收到的错误消息是我在浏览器中直接转到URL时收到的消息。当我从软件程序调用API时,我收到了一个HTML响应,基本上包含以下消息:
我们很抱歉。。。但您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们现在无法处理您的请求
对于iOS或Android应用程序,密钥需要授予额外的权限
转到Google控制台->API和服务->库。点击平台的位置库,然后点击启用
请参见您试图使用的API密钥受到限制,不允许执行此操作
据谷歌称:
Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.
因此,正确的做法是创建另一个API密钥,并为此选择正确的限制。在您的情况下,选择“IP地址”(在“应用程序限制”下),并使用“添加项目”添加您的服务器IP。
请注意,留下一个空白列表是行不通的,它会导致google将您的限制更改为“无”
另外,不要忘记在“API限制”(在您的例子中是“地理编码API”)下添加相关API
最后一件事-谷歌正在阻止使用此API,直到你将你的应用程序链接到谷歌云计费帐户。因此,如果您还没有这样做,一旦您成功获得响应,它会说您必须先这样做(它有一个免费的启动包)。禁用双向api和地理编码api,然后重新启用
它只工作5-10秒,然后自动禁用
这意味着您只有5-10秒的时间来测试分配。身份验证、配额、定价和策略
真正的