2012-05-08 31 views
2

我已經設置了一個小型PHP腳本,用於通過CURL上的Google地理編碼API驗證用戶提交的地址信息。Google maps地理編碼API在使用認證時不起作用

https://developers.google.com/maps/documentation/geocoding/#GeocodingRequests 

這一切都正常使用正常的配額,你每天得到每IP。然而,每當我嘗試使用API​​密鑰進行身份驗證時,我都會收到REQUEST_DENIED響應。

成功響應

http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Agadir 

請求被拒絕

http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Agadir&key={my_api_key} 

我已經建立了我的項目,允許在該服務(谷歌地圖API第3版)的訪問,我當然是隔靴搔癢每日配額。我也100%確定我的API密鑰是正確的。

有誰知道API密鑰是否需要一段時間才能傳播?

回答

2

您需要base64_decode()的API密鑰,然後簽署該URL。 Working code from Google

+0

此頁面有代碼示例的鏈接除了PHP以外的其他許多語言:http://gmaps-samples.googlecode.com/svn/trunk/urlsigning/index.html –

0

它看起來不需要地理編碼請求的關鍵。我剛剛在瀏覽器中打開了此鏈接:http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Agadir,並獲得了有效的JSON。沒有指定密鑰。你應該嘗試的是使用任何免費的CGI代理或者其他機器,並嘗試首先使用瀏覽器訪問此URL。

+0

當然,我可以使用允許的配額獲得響應,但我相信我最終會超過此限制,因此我希望它能夠使用身份驗證。 –

+0

對不起,我的不好,我重新閱讀你的文章,並看到你提到,沒有關鍵它工作正常。但是我剛剛打開了他們的文檔,並且在俄文版中有一個警告,即不再需要API密鑰。相反,您需要使用加密密鑰對每個請求的URL進行簽名,但這是Premier服務。我無法在他們的文檔的英文版中找到任何確認,但以下是我對該問題的看法:http://blog.programmableweb.com/2010/03/10/google-says-goodbye-to-api -keys-with-new-geocoding-api/ – Alexey

+0

你能指出任何資源嗎? –

0

嘗試使用https而不是http請求拒絕,因爲Google Api需要通過SSL請求。

相關問題