BotFramework вызов метода Telegram (getChatAdministrators) - PullRequest
0 голосов
/ 15 января 2019

Как я могу вызвать метод Telegram (getChatAdministrators) из BotFramework

Я пробовал этот код, но ответ пуст

        turnContext.Activity.ChannelData = JsonConvert.SerializeObject(new
        {
            method = "getChatAdministrators",
            parameters = new
            {
                chat_id = chat.Id,
            }
        });

        var response = await turnContext.SendActivityAsync(turnContext.Activity);

1 Ответ

0 голосов
/ 15 января 2019

Свойство Activity ITurnContext представляет входящее действие для текущего хода, поэтому, если вы пытаетесь отправить новое действие, вы не хотите использовать / изменять его Например, вы хотите создать новый.

Я лично не сделал именно то, что вы просите с Telegram, но это общий подход, который вы должны использовать:

var response = await turnContext.SendActivityAsync(new Activity
{
    ChannelData = new 
    {
       method = "getChatAdministrators",
       parameters = new 
       {
           chat_id = chat.Id,
       },    
    },
});

ПРИМЕЧАНИЕ: нет никаких причин для ручной сериализации чего-либо JSON, просто используйте анонимные типы, если хотите (вы также можете создать свои собственные строго типизированные классы, размеченные с помощью атрибутов сериализации JSON.NET), и они будут сериализироваться очень хорошо. ? ИМХО, хорошая интеграция каналов должна обеспечивать пакет NuGet с определенными типами каналов / расширениями в нем, но поскольку V4 является относительно новым, сейчас еще не так много расширений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...