Facebook "не удалось получить данные из URL" - PullRequest
4 голосов
/ 22 марта 2012

Я получаю сообщение об ошибке ниже при попытке сделать вызов API 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, так что это может означать проблему с самим вызовом.

Кроме того, я вижу, как линтер Facebook выполняет обратный вызов моего приложения GAE в журналах, и я не вижу никаких ошибок в этом ответе.

Редактировать: Хорошо, это явно проблема с тайм-аутом. Я замечаю, что когда новый экземпляр GAE не запускается при обратном вызове фейсбука Линтера, он работает правильно. Когда запускается новый экземпляр GAE, это занимает более 50 секунд или около того. Я получаю ошибку от Facebook в течение 10 секунд. Так что в тот период что-то происходит, будь то фейсбук линтер или GAE URL Fetch.

Ответы [ 2 ]

0 голосов
/ 18 августа 2013

Также может быть проблема с параллелизмом. Посмотрите, это хорошо сработало для меня. Facebook Открыть График от Rails Heroku

0 голосов
/ 20 апреля 2012

Я пишу в FB из GAE все время на nimbits.com - не беспокойтесь.

Этот код работает:

Серверная сторона Facebook Impl:

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

это мой удобный пост http и получить вспомогательный класс, который работает на GAEи упоминается в приведенном выше коде:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...