UCWA: ошибка при отправке нескольких сообщений

Я пытаюсь закодировать чат-бот Skype для бизнеса с помощью UCWA. На данный момент я могу успешно создать приложение, отправить сообщение-приглашение и, наконец, отправить правильно полученное сообщение. Проблема в том, что если я отправлю другое сообщение, оно никогда не будет получено получателем.

В этом случае статус сообщения — «Сбой», но никакой другой полезной информации не предоставляется.

Я использовал руководство Мэтью Проктора и официальный документация Microsoft. Пример Microsoft отправляет только одно сообщение перед закрытием беседы, поэтому никаких указаний на мою проблему не дается. В учебнике Мэтью Проктора говорится только о повторном выполнении запроса POST POST https://myhostname.com/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging/messages. И я правильно вызываю ресурс события между каждым сообщением.

Вот шаги, выполняемые в моем сценарии:

sd.send_user_message_invitation()
conv_id = sd.get_conversation_ID_in_event()
sd.send_message(conv_id, "Premier message")
sd.get_event()
sd.send_message(conv_id, "Deuxième message")
sd.get_event()
sd.terminate_conversation(conv_id)

Вот ответ, который я получаю, когда делаю запрос GET по URL-адресу события после первого сообщения (которое получено правильно):

GET https://myhostname.com/ucwa/oauth/v1/applications/108/events?ack=2

{
    "_links": {
        "self": {"href": "/ucwa/oauth/v1/applications/108/events?ack=2"},
        "next": {"href": "/ucwa/oauth/v1/applications/108/events?ack=3"}
    },
    "sender": [
        {
            "rel": "conversation",
            "href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e",
            "events": [
                {
                    "link": {
                        "rel": "message",
                        "href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging/messages/2"
                    },
                    "status": "Success",
                    "_embedded": {
                        "message": {
                            "direction": "Outgoing",
                            "timeStamp": "\/Date(1581608086884)\/",
                            "_links": {
                                "self": {"href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging/messages/2"},
                                "messaging": {"href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging"}
                            },
                            "rel": "message"
                        }
                    },
                    "type": "completed"
                }
            ]
        }
    ]
}

И вот что я получаю, когда делаю запрос GET по URL-адресу события после второго (или любого последующего отправленного) сообщения (которое не получено):

GET https://myhostname.com/ucwa/oauth/v1/applications/108/events?ack=3

{
    "_links": {
        "self": {"href": "/ucwa/oauth/v1/applications/108/events?ack=3"},
        "next": {"href": "/ucwa/oauth/v1/applications/108/events?ack=4"}
    },
    "sender": [
        {
            "rel": "conversation",
            "href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e",
            "events": [
                {
                    "link": {
                        "rel": "message",
                        "href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging/messages/3"
                    },
                    "status": "Failure",
                    "_embedded": {
                        "message": {
                            "direction": "Outgoing",
                            "timeStamp": "\/Date(1581608088182)\/",
                            "_links": {
                                "self": {"href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging/messages/3"},
                                "messaging": {"href": "/ucwa/oauth/v1/applications/108/communication/conversations/39e/messaging"}
                            },
                            "rel": "message"
                        }
                    },
                    "reason": {
                        "code": "RemoteFailure",
                        "message": "Your request couldn\u0027t be completed.",
                        "debugInfo": {"errorReportId": "fb8aada02f7f47e6958b6c7df62e7bec"}
                    },
                    "type": "completed"
                }
            ]
        }
    ]
}

Что я забыл? Любая помощь?


person Teazane    schedule 13.02.2020    source источник


Ответы (1)


Я только что решил проблему. Похоже, произошла ошибка кодирования, поэтому сообщение, содержащее символ с диакритическим знаком, не может быть отправлено ("é", "è", "à", "ù", ...) без сбоя.

person Teazane    schedule 06.03.2020