Можно ли использовать расширение для обмена сообщениями команд? - PullRequest
1 голос
/ 30 марта 2020

Я разработал расширение обмена сообщениями для команд. Я хочу, чтобы он был доступен только для команд, для которых я специально установил приложение. Это возможно и как? Я не могу найти какую-либо информацию по этому вопросу, но мой вариант использования не выглядит надуманным, поэтому я ожидаю, что это будет возможно.

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

Ответы [ 2 ]

5 голосов
/ 30 марта 2020

Расширения сообщений не имеют определенной области действия, и они становятся доступны после установки в группах. В настоящее время невозможно ограничить показ расширения сообщения в одной команде

0 голосов
/ 30 марта 2020

В итоге я ответил картой, которая обрабатывает ошибку:

private MessagingExtensionResponse errorResponse(string title, string errorText)
{
    MessagingExtensionResult composeExtensionResult = new MessagingExtensionResult
    {
        Type = "result",
        AttachmentLayout = "list",
        Attachments = new List<MessagingExtensionAttachment>(),
    };

    ThumbnailCard h = new ThumbnailCard()
    {
        Title = title,
        Text = errorText,
    };
    composeExtensionResult.Attachments.Add(h.ToAttachment().ToMessagingExtensionAttachment());
    var messagingExtensionResponse = new MessagingExtensionResponse();
    messagingExtensionResponse.ComposeExtension = composeExtensionResult;
    return messagingExtensionResponse;
}

Хотя было бы неплохо иметь возможность расширить расширение, таким образом я могу поймать более недопустимое использование. Например:

var currentTeam = new TeamDetails();
IList<ChannelInfo> currentTeamChannels = new List<ChannelInfo>();
try
{
    currentTeam = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
    currentTeamChannels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
}
catch
{
    return errorResponse("Permission error", "This app has no permissions to this team / channel. Please add the app to this team / channel.");
}

Получил предложение по этому вопросу: Возможно ли расширение для обмена сообщениями команд вернуть ответ в виде открытого текста вместо карты?

...