Обратный вызов forge.facebook.ui вызывается с нулевым значением на iOS

У меня проблемы с 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"}

person Meirion    schedule 22.11.2012    source источник
comment
Вы уверены, что ваш обратный вызов успеха не вызывается? Я только что попробовал ваш фрагмент кода, и мой обратный вызов был вызван с помощью null. Вы пытались добавить обратный вызов ошибки на случай, если что-то пойдет не так в вызове facebook.ui?   -  person James Brady    schedule 03.12.2012
comment
Спасибо, Джеймс. Вы правы, вызывается обратный вызов успеха. (Пытался добавить обратный вызов ошибки и, очевидно, не вызывается.) Мы только когда-либо получаем null на iOS, но ожидаем объект с идентификаторами FB и т. д. Обновили вопрос выше примерами, ура.   -  person Meirion    schedule 05.12.2012


Ответы (1)


Исправление для этого будет включено в версию платформы v1.4.23 Trigger.io.

Ваш обратный вызов успеха будет вызван с помощью (например, для apprequests):

{"request":"519074534448448","to[0]":"105000524002524"}

Примечание. ваш обратный вызов все равно будет вызван, если пользователь нажмет кнопку "Отмена": {} будет передано в качестве параметра обратного вызова.

Если они нажмут на x в верхнем левом углу, будет вызван ваш обратный вызов с ошибкой.

person James Brady    schedule 05.12.2012
comment
Легенда. Когда вы будете выпускать .23? - person Meirion; 05.12.2012