【问题标题】:Google Map API Key in Directions (iOS app)方向中的 Google Map API 密钥(iOS 应用)
【发布时间】:2018-03-25 17:05:42
【问题描述】:

我想使用 google map api 在两个位置之间进行路线。在我的 IOS 应用程序中。我尝试为项目创建公钥并在开发者控制台中启用使用 API。但我收到此错误:此 ip 站点或移动应用程序无权使用此 api 密钥 IOS。在此错误之后,我尝试为(IP 地址(Web 服务器、cron 作业等))的密钥限制创建 API 密钥并设置我的 IP 地址,然后路由工作正常。但是当我一次又一次地从其他设备尝试这个时,我得到了这个错误。 我应该使用此 URL 进行路由:

let url = "https://maps.googleapis.com/maps/api/directions/json?origin=\(origin)&destination=\(destination)&mode=driving&key=APIKEY"

如何解决这个问题,以便在所有设备上运行我的代码。

【问题讨论】:

  • 嗯嗯谷歌????
  • @brandonscript 我使用这个 google 文档:developers.google.com/maps/documentation/directions/… 我应该创建一个 IP 地址密钥,这个密钥创建一个 IP 地址,我怎样才能将这个 IP 地址用于所有设备?
  • 从您的问题中删除 API 密钥。共享您的 API 密钥是不安全的。

标签: ios swift google-maps google-api


【解决方案1】:

您用于 Google 地图网络服务 (Directions API) 的 API 密钥支持以下文档中提到的 IP 限制:

https://developers.google.com/maps/faq#using-google-maps-apis

问题是您无法知道安装了您的应用程序的所有设备的 IP 地址。

您有以下选择:

  1. 使用不受限制的 API 密钥。请注意,API 密钥需要 HTTPS 连接,因此 API 密钥不会从请求本身中被截获,因为请求是加密的。因此,在这种情况下,您应该确保 API 密钥不直接放在您的源代码中。如果你能从config或者环境中读取,或许是可行的。

  2. 创建中间服务器。您的 iOS 应用程序应向中间服务器发送请求,中间服务器应向 Google 发送请求并将响应传回您的应用程序。在这种情况下,您可以通过中间服务器的 IP 地址来限制 API 密钥。

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多