2015-04-30 72 views
0

我试图调用Google Places API来返回我附近的餐馆列表。当我从浏览器调用它时,它工作正常。但是,当我使用Ionic Framework构建的iOS应用程序调用此应用程序时,它会失败,并显示数据NULL,状态为0的错误。从iOS应用程序中调用Google Places/Nearby API

我研究了一下,发现这是一个CORS问题。我查阅了关于如何为iOS App发出GET请求的Google文档。我使用我的应用程序捆绑ID为我的应用程序创建密钥和客户端ID。使用这里的步骤https://developers.google.com/accounts/docs/OAuth2InstalledApp#overview,我获得了一个access_token,我用它作为查询参数,就像提到的文档一样。什么都没有出了什么问题?从iOS应用未能https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=MyServerApplicationsKey&location=33.85463,-84.35870&rankby=distance&types=restaurant

网址:

URL,关于浏览器的工作原理https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=MyiOSApplicationsKey&location=33.85463,-84.35870&rankby=distance&types=restaurant&access_token=MyToken

@plexer 我使用服务器键调用来自浏览器的URL。如上所述,这是有效的。从应用程序,如果我使用此密钥,我得到以下错误: {“数据”:null,“状态”:0,“配置”:{“方法”:“GET”,“transformRequest”:[null], “transformResponse”:[null],“url”:“sameUrlThatWorksOnBrowser”,“headers”:{“Accept”:“application/json,text/plain,/”}},“statusText”:“”}

+0

您是否在设备上使用livereload? –

+0

是的,我是。那是怎么相关的? –

+0

因此,我发现这与“服务器应用程序密钥”部分中的“允许的IP列表”有关。尽管这是痛苦的,因为我需要指定请求将来自的所有IP的列表!任何方式使这项工作的任何IP地址? –

回答

0

Google Places API使用公共API访问密钥,而不是oAuth。好消息是,这些开始很简单。

按照上this page下验证部分的说明创建一个新的公共API访问键,则包括在为您的应用&关键参数是关键。

点击“创建新密钥”按钮后,选择“服务器密钥”。这有点奇怪,因为你从iOS调用API,但它会起作用。

+0

您好,我已经编辑了我的题。请看一看。谢谢! –

+0

嗨Ajinkya,我还没有尝试是否有帮助。由于Ionic支持angular,这个指令可以帮助你http://angular-js.in/google-places-autocomplete/ –

相关问题