У меня проблемы с Trigger.io Forge и получение обратного вызова от пользовательского интерфейса выбора друзей FB. Проблема проявляется только на iOS, на Android работает нормально.
Запуск этого кода в катализаторе на устройстве iPhone или в симуляторе приводит к правильному отображению диалога FB.
>forge.facebook.ui({
method: 'apprequests',
message: 'Hey'
}, function(a){console.log('success: '+JSON.stringify(a))}, function(error) {console.log('error:'+JSON.stringify(error))});
>undefined
>success: null
При выборе некоторых пользователей и отправке запросов диалог закрывается, но callback не вызывается. В журнале отладки Forge появляется следующее:
[DEBUG] Native call: {
[DEBUG] callid = "35938A56-CEEC-44E1-8742-889D273F6E9E";
[DEBUG] method = "facebook.ui";
[DEBUG] params = {
[DEBUG] "exclude_ids" = "";
[DEBUG] message = "invited you to play Halo 4";
[DEBUG] method = apprequests;
[DEBUG] };
[DEBUG] start = "1353579502.975";
[DEBUG] }
[DEBUG] Returning to javascript: {
[DEBUG] callid = "35938A56-CEEC-44E1-8742-889D273F6E9E";
[DEBUG] content = "<null>";
[DEBUG] status = success;
[DEBUG] }
[DEBUG] 2012-12-05 13:04:09.631 Forge[5110:c07] An instance 0x9dd3700 of class FBSessionManualTokenCachingStrategy was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
[DEBUG] <NSKeyValueObservationInfo 0x9dcad90> (
[DEBUG] <NSKeyValueObservance 0x9dd1300: Observer: 0x9de4680, Key path: accessToken, Options: <New: NO, Old: NO, Prior: YES> Context: 0x112ad4, Property: 0xc9a6fe0>
[DEBUG] <NSKeyValueObservance 0x9dbba50: Observer: 0x9de4680, Key path: expirationDate, Options: <New: NO, Old: NO, Prior: YES> Context: 0x112ad4, Property: 0xc9a0a60>
[DEBUG] )
Пробовали Forge версии 1.4, 1.4.21, без радости. Я предполагаю, что это как-то связано с обратным вызовом content = null.
Спасибо за вашу помощь.
ОБНОВЛЕНИЕ Джеймс, вы правы - обратный вызов iPhone вызывается, но ответ всегда нулевой. Я ожидаю получить объект с идентификаторами пользователей FB и идентификаторами запросов.
Для справки: Android работает правильно и возвращает:
[DEBUG] Native call "facebook.ui" with task.params: {"method":"apprequests","message":"Hey"}
[DEBUG] Returning: {"content":{"to[0]":"100004602392907","request":"453015091412347",
"to[1]":"515252483"},
"status":"success",
"callid":"ED47AAB4-7A72-45A0-B0B3-0DADC9A75E9C"}
И если пользователь отменяет диалог FB, это возвращается:
[DEBUG] Returning: {"content":{},"status":"success",
"callid":"256CB78F-3EE1-4BD7-8990-EDE26275D68F"}
null
. Вы пытались добавить обратный вызов ошибки на случай, если что-то пойдет не так в вызове facebook.ui? - person James Brady   schedule 03.12.2012