Facebook "could not retrieve data from URL"

标签 facebook google-app-engine facebook-graph-api

尝试对 facebook 进行图形 API 调用时出现以下错误。我知道我的回调 url 很好,因为当我在 facebook 调试器中测试它时,它可以很好地查看页面。我也在使用 Google App Engine,我真的认为这个错误可能与从 facebook 返回到我的 GAE 应用程序的异步调用有关,而进行 URL Fetch 的线程仍然处于事件状态等待回复。

错误:

{"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 Fetch 上是否表现异常?我还增加了连接超时,以防导致问题。不确定它是否相关,但我认为这是来自 facebook linter 的完全一般性错误,因此它可能意味着调用本身存在问题。

此外,我可以在日志中看到 Facebook linter 正在对我的 GAE 应用程序进行回调,并且我在该响应中没有看到任何错误。

编辑:好的,这显然是一个超时问题。我注意到当 facebook linter 回调中没有启动新的 GAE 实例时,它可以正常工作。当启动一个新的 GAE 实例时,需要 50 秒左右的时间。我在 10 秒内从 Facebook 收到错误信息。因此,在那个时期,无论是 facebook linter 还是 GAE URL Fetch,都会出现超时。

最佳答案

我一直在 nimbits.com 上从 GAE 写信给 FB - 不用担心。

此代码有效:

服务器端 Facebook 实现:

https://github.com/bsautner/com.nimbits/blob/master/nimbits-tds/src/com/nimbits/server/external/facebook/FacebookImpl.java

这是我方便的 http post 和 get helper 类,它在 GAE 上工作并在上面的代码中被引用:

https://github.com/bsautner/com.nimbits/blob/master/nimbits-model/src/com/nimbits/server/http/HttpCommonImpl.java

关于 Facebook "could not retrieve data from URL",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815701/

相关文章:

php - Facebook 网站集成 -> fb 登录按钮与 fb 注册?

python - cron 作业是否在谷歌应用引擎中同时运行?

android - Eclipse 启动挂起, "Android SDK: resolving error markers"

iphone - 移动网络上的 Facebook 分享

Facebook Open Graph 日期格式

javascript - 将图像附加到 Data-href facebook 共享按钮

python - 如何使用 python 在 google app engine blobstore 上创建一个简单的虚拟文件系统?

php - 如何使用 PHP SDK 从 Facebook 获取我的所有照片?

facebook - 通过 Graph API 读取 Facebook 暗贴

java - 使用 Facebook4j api 从页面获取帖子