Google Maps API V3 错误:RefererDeniedMapError

Die*_*ego 4 google-maps google-api google-maps-api-3

我遇到了 Google Maps Javascript API V3 的问题。控制台日志显示:

Google Maps API 错误:RefererDeniedMapError https://developers.google.com/maps/documentation/javascript/error-messages#referer-denied-map-error

有关此错误的 Google 文档非常糟糕,即使他说要检查开发者控制台以搜索更多详细信息,我也无法找到有关该错误的更多详细信息,这可能与以下列表中发布的某些信息有关。我看到在 Google 控制台中,您可以以某种方式启用日志记录或其他内容,但它需要 Google SDK,我无法负担得起配置,因为这意味着超出预算

这里已经提出了这个问题:Google Maps API v3 (RefererDeniedMapError) 中的 Javascript 错误,但没有一个答案可以帮助我。

这是我迄今为止尝试过的:

  1. 重新生成 Google Api
  2. 在 Google 控制台中启用/禁用域限制
  3. 将密钥从浏览器更改为服务器
  4. 试图了解该域是否因某种原因被 Google 禁止
  5. 在 Google Console 上创建新项目并生成一个全新的 Javascript API 密钥,没有(从一开始)域限制

让我再提供一些背景数据:

  1. 我在一个已经存在的站点上为外部客户工作,他对可能已经配置了 api 密钥的预先存在的谷歌帐户一无所知(他们正在使用一些谷歌 API 服务,但这就是我所知道的)
  2. 我设法发现谷歌已经联系了他们关于 API 使用配额的问题,但我再次不知道通信细节在哪里。
  3. 他们有一个 IIS 服务器,并将新站点建立在其主域的子目录中
  4. 我注意到从新网站到自我网站的自我请求(ajax)以某种方式导致跨域请求,这在我看来真的很奇怪,太糟糕了,我不知道他们的服务器配置更详细.
  5. 我检查了 Google Api 的免费计划,每天限制为 25K,客户说他不应该达到那么高,但他愿意付费重新启用 API
  6. 我已经在本地环境和其他测试实时域上测试了一个新生成的 API,它看起来工作正常,但是一旦我在有罪域上尝试这些键,错误就会弹出

我的问题是:

  1. 是否有一种安全的方法来了解该域是否因 API 的超额使用或其他原因而被谷歌以某种方式禁止?
  2. 我如何确保为域创建计费帐户并允许 API 计划高于 25k 将再次启用我的计划?
  3. 这是一个与javascript相关的问题吗?我想我已经尽我所能检查这部分,但我愿意接受建议。
  4. 如果有多个谷歌帐户引用同一个域来使用 API 有关系吗?我的意思是,据我所知,可能有多个 Google 帐户为该域中的同一目标创建了不同的 API 密钥(域限制与否,它们可能仍在使用中)

Die*_*ego 6

对于将来会遇到这个问题的每个人:原来这是一个域问题。我设法使用他们的论坛联系了 google 支持服务中的一个:https : //code.google.com/p/gmaps-api-issues/

在那里发布我的问题后,我被告知我正在使用的域有 Google 许可的过去,它曾经激活过一个商业计划,然后过去的某个人违反了 Google 的 ToS。遗憾的是,普通用户无法检查您的域过去是否违反了 Google 的 ToS,因此我不得不等待 Google 支持团队的答复。

长话短说:如果您过去有一个被 Google 禁止的域,那么您就会遇到麻烦,并且有 2 条出路: - 更改您的域以获得一个未被禁止的新域 - 支付 10,000 美元的 Google 工作许可证(不是高级许可证,只是“基本”许可证)如果您想再次使用 API。价格不是幻想,这是谷歌支持告诉我的。

希望这会帮助某人找出这个记录不全的错误。

更新

文档已更新,并添加了明确的解释:

RefererDeniedMapError您的应用程序因不遵守 Google Maps API 服务条款而被阻止,在收到几封电子邮件通知后。要对该块提出申诉并让您的实施得到审核,请填写此表格。您将在几个工作日内通过电子邮件收到回复。

https://developers.google.com/maps/documentation/javascript/error-messages

因此,从现在开始,每个遇到此问题的人都可以提交申诉表。