从iOS应用中调用Google商家信息/附近的API

时间:2015-04-30 20:52:03

标签: ios json ionic-framework google-places-api google-places

我试图调用Google Places API来返回我附近的餐馆列表。当我从浏览器调用它时它工作正常。但是,当我从使用Ionic Framework构建的iOS App中调用它时,它会因数据NULL,状态0错误而失败。

我研究了很多,发现这是一个CORS问题。我查看了有关如何为iOS App发出GET请求的Google文档。我使用应用程序的软件包ID为我的应用程序创建密钥和客户端ID。使用这里的步骤https://developers.google.com/accounts/docs/OAuth2InstalledApp#overview,我获得了一个access_token,我将其用作查询参数,就像提到的文档一样。什么都行不通。出了什么问题?

适用于浏览器的网址:https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=MyServerApplicationsKey&location=33.85463,-84.35870&rankby=distance&types=restaurant

IOS App失败的网址: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。如上所述,这是有效的。从应用程序,如果我使用此密钥,我收到以下错误:  {"数据":空,"状态":0,"配置" {"方法":" GET" " transformRequest":[空]," transformResponse":[空]," URL":" sameUrlThatWorksOnBrowser""集管和#34;:{"接受":" application / json,text / plain, / "}}," statusText": ""}

1 个答案:

答案 0 :(得分:0)

Google Places API使用公共API访问密钥,而不是oAuth。好消息是,开始使用它们要简单得多。

按照this page上“身份验证”部分下的说明创建新的公开API访问密钥,然后将该密钥包含在应用的& key参数中。

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