Невозможно создать новый разговор по скайпу - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь создать новый разговор с человеком или группой лиц, поэтому я создаю токен Bearer для аутентификации и добавляю его в заголовок как токен носителя (в почтальоне).

Итак, на следующем шаге я создаю сценарий json, который теоретически может создать новый диалог. Я пытаюсь создать разговор с несколькими людьми или только с одним (для этого я добавил несколько человек к участникам или один и изменил флаг isGroup на true или false).

Это пример json для 1 человека:

{
    "bot": {
        "id": "<app id>",
        "name": "<bot name>"
    },
    "isGroup": false,
    "members": [
       {
            "id": "<member id>",
            "name": "<member name>"
        }
    ],
    "topicName": "Hello there!"
}

Идентификатор участника верен для всех участников, которых я пытаюсь добавить в новый разговор.

И следующий ответ я получаю всегда:

{
    "id": "8:live:<skype account name>"
}

Для группового разговора я получаю имя этого живого скайпа от первого лица, которое я добавил. Все запросы были отправлены на https://skype.botframework.com/v3/conversations или https://smba.trafficmanager.net/apis/v3/conversations и ответ всегда один и тот же.

Может кто-нибудь сказать мне, что я делаю не так?

Также, если я добавлю активность в теле, как:

"activity": 
    { 
        "type": "message", 
        "from": 
        { 
            "id": "<app-id>", 
            "name": "<bot name>" 

        },
        "recipient": 
        { 
            "id": "<member id>", 
            "name": "<member name>" 
        }, 
        "text": "HI" 
    }

Я получаю следующий ответ:

{ 
    "error": 
    { 
        "code": "ServiceError", 
        "message": "Unknown" 
    } 
}

1 Ответ

0 голосов
/ 11 июля 2019

Поскольку Skype допускает только один диалог между любыми двумя заданными пользователями, то, что похоже на простой идентификатор пользователя, на самом деле достаточно для того, чтобы Bot Framework идентифицировала диалог. Некоторые каналы, включая Skype, допускают более одного формата идентификатора. В случае Skype каждый разговор можно идентифицировать двумя способами:

  • <номер>: <экранное имя Skype>
  • <число>: <строка base64>

Например, когда я создаю разговор в Skype, я получаю идентификатор 8:kyle-delaney. Я могу использовать это для отправки сообщения в беседу со следующей конечной точкой:

https://smba.trafficmanager.net/apis/v3/conversations/8:kyle-delaney/activities

Однако, когда мой бот получает сообщение от пользователя, как идентификатор разговора, так и идентификатор «от» будут 29:1CpqzpVMMhfi_2nyS1g2mfHaCxnvGL0sF8LbnGadyR_Y. Поэтому я также могу отправить сообщение тому же разговору с помощью этой конечной точки:

https://smba.trafficmanager.net/apis/v3/conversations/29:1CpqzpVMMhfi_2nyS1g2mfHaCxnvGL0sF8LbnGadyR_Y/activities
...