在 google-maps-react 中手动加载 Google API 时使用不同的 API 键

Different API key used when manually loading the Google API in google-maps-react

我正在使用手动 Google API 加载,就像 docs 中一样。 来自我的 index.html 的片段:

<div id="app"></div>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&libraries=places"></script>
<script src="/bundle.js"></script>

其中 MY_KEY 是我为项目生成的硬编码密钥。

但是,当使用地理定位时,通过跟踪传出请求,我注意到使用了不同的 API keyAIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw,它看起来像一个通用密钥,因为它在整个网络上浮动。

因此,大多数时候 API 不可用,例如在一天的晚些时候它回复:

"domain": "usageLimits",
"reason": "dailyLimitExceeded",
"message": "This API requires billing to be enabled on the project. Visit https://console.developers.google.com/billing?project=77185425430 to enable billing.",
"extendedHelp": "https://console.developers.google.com/billing?project=77185425430"

我没有在库代码本身和 window.google 对象中找到这个 API 键,所以我有点困惑它到底是从哪里来的...

但最重要的是,如何强制使用我的密钥?

编辑: 演示站点存在同样的问题:https://fullstackreact.github.io/google-maps-react/ 页面源中的API键是:AIzaSyAyesbQMyKVVbBgKVi2g6VX7mop2z96jBo 而实际用于查询的是:

Chrome: AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw

火狐:AIzaSyD_Drzahe4dBzGCZ9ArvowCvrPx_yFrlCM

显然,至少在地理定位服务的情况下,这是预期的行为。这些请求使用标准的浏览器密钥。

我还没有找到每日使用限制错误的来源,但是我在应用程序的最终版本中不再观察它了。