从img标记加载时,Google静态地图API禁止403

Bra*_*ady 22 api static google-maps image

我所拥有的是一张谷歌地图,显示了一个属性的位置,但是当我来打印时,动态地图打印得不那么好,所以我决定实施谷歌静态地图图像API.

http://lpoc.co.uk/properties-for-sale/property/oldgate-dairy-st-james-road-long-sutton-cambridgeshire-pe12/?prop-print=1

^^是打印视图中属性的一个示例,应该显示静态地图图像,但无法加载并查看我的检查器我正在为图像获得403 Forbiden响应.

但如果我直接转到URL,图片就会加载......

我究竟做错了什么?

谢谢

斯科特

jcf*_*rei 17

这已经获得了很多观点,所以我在这里添加我的问题解决方案:

使用新API时,请确保为浏览器应用程序生成密钥(使用引用程序),并确保模式与您的URL匹配.

例如,当您从example.com请求时,您的模式应该是

  example.com/*
Run Code Online (Sandbox Code Playgroud)

当您从www.example.com申请时:

  *.example.com/*
Run Code Online (Sandbox Code Playgroud)

因此,请确保检查是否存在子域,并在开发人员控制台中允许这两种模式.

  1. 访问开发者控制台.
  2. 在API密钥下,单击铅笔图标进行编辑.
  3. 在"重点限制",确保您有一个条目example.com/*,*.example.com/*以及可能需要的本地测试领域.

  • 如果您希望它在localhost上工作,请记住添加localhost/* (3认同)
  • 这正是帮助我的原因!我整个周末度过了这个问题.最新的静态地图api,正确的URL,我发送api_key,api控制台告诉我"没问题" - 我只得到谷歌禁止的错误403.最后我找到了你的建议和宾果游戏!:)我刚刚将mydomain.com/*添加到api控制台,它就像一个魅力!谢谢 :) (2认同)

Fre*_*old 14

这里似乎有些混乱,因为这个帖子在Google上排名很高,所以似乎有必要澄清一下.

Google有几种不同的API用于他们的地图服务:

Javascript API

此API的旧版本是版本2,需要密钥.不推荐使用此版本,建议升级到较新版本3.请注意,除非您使用"Google Maps API for Business",否则文档仍指出您需要一个密钥才能运行此功能.

静态地图API

这是一个完全不同的故事.静态地图是一种不需要任何JavaScript的服务.您只需拨打网址,Google就会返回地图图片,从而可以将网址直接插入您的<img>代码中.最新版本是版本2,这需要一个键才能运行,因为应用了使用限制.

可以在此处申请密钥:https: //code.google.com/apis/console

并且应该将密钥添加到要生成正确图像的请求中:

http://maps.googleapis.com/maps/api/staticmap?center=New+York,NY&zoom=13&size=600x300&key=API_console_key

我希望这可以解决一些困惑.


Bra*_*ady 2

哎呀,我感觉自己像个白痴。我使用的是旧的 V2 地图 API URL,而不是新的 V3 API URL。我收到 403 错误,因为我使用的是 V2 URL,但没有提供 API 密钥:(

  • 顺便问一下,V3 api url 是什么???根据文档,没有静态地图api V3这样的东西,静态地图api的最新版本是V2。我很困惑 (11认同)
  • 但即便如此,为什么从 img 标签加载时会得到 403,而直接在浏览器中加载时却可以正常工作?我有同样的问题 (7认同)