尝试对facebook进行图形api调用时,我收到以下错误。我知道我的回调网址很好,因为当我在facebook调试器中测试它时,它会很好地查看页面。我也在使用谷歌应用引擎,我真的认为这个错误可能与从Facebook回到我的GAE应用程序的异步调用有关,而进行URL提取的线程正在等待回复。
错误:
{"error":{"type":"Exception","message":"Could not retrieve data from URL."}}
我的代码拨打电话:
URL url = new URL("https://graph.facebook.com/me/");
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setConnectTimeout(30000);
OutputStreamWriter writer = new OutputStreamWriter(
connection.getOutputStream());
writer.write("access_token=" + access_token + "&activity=" + ogpUrl);
writer.close();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
log.info("GraphApiHelper: success stream");
} else {
log.severe("GraphApiHelper: error stream: "
+ connection.getResponseMessage());
}
有什么想法会导致这种情况,或者GAE在这些类型的URL提取上表现得如何奇怪?如果导致问题,我也增加了连接的超时。不确定它是否相关,但我认为这是来自facebook linter的完全一般性错误,因此它可能意味着调用本身存在问题。
此外,我可以看到Facebook linter在日志中对我的GAE应用程序进行回调,而我在该响应中没有看到任何错误。
编辑:好的,这显然是暂时问题。我注意到当一个新的GAE实例没有在facebook linter回调中启动时,它可以正常工作。当一个新的GAE实例被启动时,它需要超过50秒左右。我在10秒内从Facebook收到错误。因此,无论是facebook linter还是GAE URL Fetch,都会在那段时间内超时。
答案 0 :(得分:0)
我一直在nimbits.com上给GAE写FB - 不用担心。
此代码有效:
服务器端Facebook Impl:
这是我方便的http帖子和get帮助类,适用于GAE并在上面的代码中引用:
答案 1 :(得分:0)
也可能存在一些并发问题。 看到这个,它对我有用。 Facebook Open Graph from Rails Heroku