Google api 此IP、站点或移动应用程序无权使用此API密钥

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

我在用什么?链接服务器密钥和用户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] => 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=projectnamehere

Google 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秒的时间来测试分配。

    身份验证、配额、定价和策略 真正的