Обмен сообщениями приводит к «неожиданной ошибке расширений Messenger» - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь выполнить обмен с помощью функции beginShareFlow() в Facebook MessengerExtensions. Однако при выполнении звонка я получаю следующее сообщение об ошибке:

Messenger Extensions unexpected error.

Код этой ошибки: 2018154.

Я использую следующий код для запуска общего ресурса:

ajax.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        console.log(this.responseText);
        var message = JSON.parse(this.responseText);
        MessengerExtensions.beginShareFlow(function(share_response) {
            if(share_response.is_sent){
                // close the window w/ requestCloseBrowser().
            }
        }, 
        function(errorCode, errorMessage) {      
            console.log(errorCode+"-"+errorMessage);
        },
        message,
        "current_thread");
    }
}

Вы увидите, что я использую ответ на вызов ajax, чтобы заполнить реальное сообщение. Это сгенерировано некоторым внутренним php-кодом, например:

{"attachment":{"type":"template","payload":{"template_type":"generic","sharable":"true","elements":[{"title":"Kerk Poederlee","image_url":"https:\/\/www.wouterh.be\/pogo\/static\/images\/raid.jpg","subtitle":"joining at 1535629500","default_action":{"type":"web_url","url":"https:\/\/www.wouterh.be\/pogo"},"buttons":[{"type":"web_url","url":"https:\/\/www.wouterh.be\/pogo","title":"join raid"}]}]}}}

Сами расширения Messenger были загружены правильно, так как я могу получить PSID с помощью следующего кода:

window.extAsyncInit = function() {
    MessengerExtensions.getContext('APPID', 
        function success(thread_context){
            fb_user_id = thread_context.psid;
        },
        function error(err){}
    );   
};

Эта ошибка возникает в веб-клиенте и в самом последнем мессенджере iOS. Когда я отправляю точно такое же сообщение через API отправки вместо расширений обмена сообщениями, оно работает отлично. Может ли кто-нибудь помочь мне понять причину ошибки?

1 Ответ

0 голосов
/ 31 августа 2018

Я нашел ошибку, в сообщении вы можете передать свойство 'Sharable'. Я передал ей строковое значение «true», но это должно быть логическое значение.

Это исправленное содержание:

{
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "generic",
            "sharable": true,
            "elements": [{
                "title": "Kerk Poederlee",
                "image_url": "https:\/\/www.wouterh.be\/pogo\/static\/images\/raid.jpg",
                "subtitle": "joining at 1535629500",
                "default_action": {
                    "type": "web_url",
                    "url": "https:\/\/www.wouterh.be\/pogo"
                },
                "buttons": [{
                    "type": "web_url",
                    "url": "https:\/\/www.wouterh.be\/pogo",
                    "title": "join raid"
                }]
            }]
        }
    }
}
...