当我试图对facebook进行图形api调用时,我得到了下面的错误。我知道我的回调url是好的,因为当我在facebook调试器中测试它时,它可以很好地查看页面。我也在使用Google App Engine,我真的认为这个错误可能与从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提取上表现得很奇怪?Iv'e还增加了连接上的超时,以防导致问题。我也不确定它是否相关,但我认为这是facebook linter的一个完全通用的错误,所以它可能意味着调用本身存在问题。
此外,我可以在日志中看到Facebook linter对我的GAE应用程序进行回调,并且在该响应中没有看到任何错误。
编辑:好的,这显然是一个超时问题。我注意到,当一个新的GAE实例没有在facebook linter回调上启动时,它会正常工作。当一个新的GAE实例启动时,需要50秒左右的时间。我在10秒内从Facebook得到了错误。因此,无论是facebook linter还是GAE URL Fetch,都会在这段时间超时。
发布于 2013-08-18 22:25:27
可能还存在一些并发问题。看看这个,它对我来说效果很好。Facebook Open Graph from Rails Heroku
https://stackoverflow.com/questions/9815701
复制相似问题