3

我启用了 Google 距离矩阵 API 并限制了 Android 应用程序的密钥,因为我将从我的 android 应用程序发送 http 查询以接收 json 响应:

密钥限制

没有限制,它可以工作,我得到了预期的结果。但是当它受到限制时(使用我的包名和 SHA1),我在 json 对象中收到一条失败消息,状态为“REQUEST_DENIED”:

此 IP、站点或移动应用程序无权使用此 API 密钥。从 IP 地址 [ip_addr] 收到的请求,引用者为空。

从其他帖子中,我了解到距离矩阵 API 必须与Server Key一起使用,但是在这个新的 Google Console 中,没有Server Key选项;您只需创建一个密钥并从上面选择一个限制。
Firebase 控制台创建一个服务器密钥,我可以在我的 android 应用程序中使用它,但没有限制。

那么如何限制这个键只能从我的 android 应用程序中使用距离矩阵 API?

4

1 回答 1

1

请注意,Android 应用限制仅对 Google Maps Android API v2 和 Google Maps Places for Android 有效。Web 服务(例如距离矩阵 API)在此限制下将无法工作。

适用于 Web 服务的 API 密钥的限制是 IP 限制。

假设 Web 服务请求在您的后端服务器上执行。如果您需要限制 API 密钥,解决方法是创建中间服务器。您的 Android 应用程序应向中间服务器发送请求,中间服务器应向 Google 发送请求并将响应传回您的应用程序。在这种情况下,您可以通过中间服务器的 IP 地址来限制 API 密钥。

于 2017-09-15T09:05:11.507 回答