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