PlayFramework请求Google Places API

问题描述:

我不确定这是否曾被问过,但我必须做一个简单的播放应用程序,它使用Google Places API中的一些数据。PlayFramework请求Google Places API

我发现,这样请求:

https://maps.googleapis.com/maps/api/place/search/json?location=46.5882,-95.4075&radius=50000&types=lodging&sensor=false&key=[your_api_key]

从浏览器中完美地工作,但不是从游戏! (它返回REQUEST_DENIED):

parameters.put("location", cityFound.latitude+","+cityFound.longitude); 
     parameters.put("radius", "50000"); 
     parameters.put("types", "lodging"); 
     parameters.put("sensor", "true"); 
     parameters.put("key", "GOOGLE_PLACES_KEY"); 
     WSRequest wsRequest = WS.url("https://maps.googleapis.com/maps/api/place/search/json").setParameters(parameters); 

有些头疼,我发现在浏览器中,如果我尝试做一个http请求,而不是上述https它给REQUEST_DENIED后。

所以我怀疑从Play我不能这样做https请求没有SSL证书?

而且,是不是难看支付数百$的SSL证书,只是这样的事情(或者你知道任何免费的解决方案,其很容易在游戏中实现?)

您不必购买证书。您必须确保服务器发送的证书将被您的应用程序接受。

但更重要的是检查应用程序日志中的任何异常或错误消息。您的应用程序是否真的回退到http,您是否已定义使用https?你使用了正确的Google API密钥吗?

你也许可以导出证书,即googleapis提供给您的浏览器。在Firefox中,您可以从选项 - >高级 - >加密 - >查看证书。

问题已解决。

这是不可思议的错误是如何发生的。

parameters.put("key", "GOOGLE_PLACES_KEY"); 

它应该是:

parameters.put("key", GOOGLE_PLACES_KEY); 

,因为它定义的常量。

+2

我已经告诉过你了;) – magomi 2012-03-28 17:02:19