2015-04-30 104 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/ –

相關問題