【问题标题】:Google Maps API V3 error: RefererDeniedMapErrorGoogle Maps API V3 错误:RefererDeniedMapError
【发布时间】:2016-09-16 00:22:41
【问题描述】:

我遇到了 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,而我无法负担配置,因为这意味着超出预算

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

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

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

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

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

我的问题是:

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

【问题讨论】:

  • 直接向 Google 询问您的这个非常具体的问题怎么样?
  • @MrUpsidown 是的,如果只有直接渠道可以与他们联系,我愿意这样做。他们没有更多的呼叫中心(不包括他们的付费支持服务,我想保留它作为最后的机会)。即使在他们的内部文档中,他们的建议之一是在 StackOverFlow 中询问
  • 附带信息:付费支持甚至不是按通话付费,而是以按月付费的形式进行。每月支付 150 美元只是为了解决一个问题似乎很荒谬......

标签: google-maps google-maps-api-3 google-api


【解决方案1】:

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

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

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

希望这将帮助某人找出这个记录不充分的错误。

更新

文档已更新并添加了清晰的解释:

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

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

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

【讨论】:

    【解决方案2】:

    你可以试试这个issue中的建议。

    "您可以尝试禁用 IP 到域名的重定向(如 现在),并在上面的示例中使用您的 IP。这不是一个纯粹的解决方案, 但至少你的网站上可以有地图。”

    你也可以查看here的答案,如果对你有帮助的话。

    那么如果上述任何一个解决方案都对您没有帮助,那么我认为您应该考虑 MrUpsidown 的建议。

    【讨论】:

    • 感谢您的建议,这是我过去访问过的链接之一。事实是我对谷歌地图本身没有问题,但我在问题中提到的 Javascript API 没有问题。所以我没有任何围绕地图的 iframe,而只是一个需要发布到我正在处理的域的表单。将帖子本身插入到托管在另一个域上的 iframe 中,只是为了使 javascript API 的工作听起来对我的情况来说有点太骇人听闻了。除此之外,我无法访问客户端 DNS 设置。我有点没有想法,请参阅我对@MrUpsidown 的回答
    猜你喜欢
    • 2015-09-07
    • 2012-05-10
    • 2023-04-01
    • 1970-01-01
    • 2011-04-26
    • 2016-08-02
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多