Отправка сообщения чата на канал Команды Microsoft с помощью Microsoft Graph API C# - PullRequest
1 голос
/ 06 марта 2020

Моя цель проста. Я хочу отправить автоматическое сообщение чата на канал MS Teams с помощью API-интерфейса Graph.

Похоже, что это бета-функция API-интерфейса Graph и доступна только в Microsoft.Graph.Beta.

Я прочитал документы и пытался следовать этому примеру:

https://docs.microsoft.com/en-us/graph/api/channel-post-messages, у меня все права доступа установлены правильно на моем портале azure. Я продолжаю получать «Неизвестную ошибку», которую я пытался:

var graphServiceClient = MicrosoftGraphService.GetGraphServiceClient();

            var chatMessage = new ChatMessage
            {
                Subject = null,

                Body = new ItemBody
                {
                    ContentType = BodyType.Text,
                    Content = messageText
                }

            };

            var response = await graphServiceClient.Teams["77f9c17f-54ca-4275-82d4-fff7esdacda1"].Channels["2007765c-8185-4cc7-8064-fb1b10f27e6b"].Messages.Request()
               .AddAsync(chatMessage);

Я также пытался узнать, могу ли я получить что-нибудь от команд:

var teams = await graphServiceClient.Teams["77f9c17f-54ca-4275-2sed4-ffsde59acda1"].Request().GetAsync();

Опять все, что я получаю - Неизвестно ошибка, я использовал GRAPH API прежде, чтобы сделать что-то вроде получения пользователей в организации, так что я знаю, что настройка genreal правильная.

Кто-нибудь на Inte rnet где-нибудь в мире заставил это работать ?! потому что это сводит меня с ума

1 Ответ

1 голос
/ 30 марта 2020

Та же проблема здесь:

Все нормально с пользователями или группами, но я ничего не могу получить от команд (unknownError)

Все идентификаторы верны и проверены

Вот полномочия, которые я установил для приложения:

  • Прочитать фид групповой активности всех пользователей
  • Прочитать все группы
  • Отправить групповую активность любому пользователю
  • Получить список всех команд

Вот мой код (на основе сценарий приложения Microsoft Microsoft )

Маркер доступа в порядке

var graphClient = new GraphServiceClient(
    "https://graph.microsoft.com/beta",
    new DelegateAuthenticationProvider(async (requestMessage) =>
    {
        requestMessage.Headers.Authorization =
            new AuthenticationHeaderValue("Bearer", result.AccessToken);
    }));

var chatMessage = new ChatMessage
{
    Subject = "Message de test",
    Body = new ItemBody
    {
        ContentType = BodyType.Html,
        Content = "Contenu de test"
    }
};

await graphClient.Teams["218a4b1d-84d5-48a2-97a0-023e4e4c3e85"].Channels["19:adbf8ddf37a049aa9f63a0f8ee0e8054@thread.tacv2"].Messages
    .Request()
    .AddAsync(chatMessage);

И результат:

Token acquired
Code: UnknownError
Inner error:
    AdditionalData:
    request-id: e2e433d8-cedd-4401-b5b2-6f34cf5611cf
    date: 2020-03-30T12:14:15
ClientRequestId: e2e433d8-cedd-4401-b5b2-6f34cf5611cf

Редактировать (2020-04-01):

Пока нет решения: есть ответы на комментарии на внизу страницы «Создать chatMessage в канале» в ms do c (раздел обратной связи)

Кажется, что приложениям не может быть предоставлено разрешение на отправку chatMessages до сих пор.

RamjotSingh прокомментировал: 11 июня 2019 г.

@ pythonpsycho1337 - Согласно Таблица миссий, приведенная выше, отмечает, что в настоящее время только API-интерфейс не поддерживается этим API.


RamjotSingh прокомментировал De c 16, 2019 Автор

Поддержка разрешений для приложений - это то, что мы планируем сделать, но у нас пока нет даты.


RamjotSingh прокомментировал день go Автор

Мы будем опубликовать в блоге Microsoft Graph, когда у нас появятся разрешения для этого API. Так как на оригинальный вопрос по этому вопросу был дан ответ. Закрытие.

...