botframeworkv4 - 可用频道 ID 列表

Zia*_*iki 8 c# botframework

在探索botframeworkv4C# 中的新预览时,我遇到了一个案例,我需要对某个频道执行特定操作。在 中botframeworkv3,我曾经使用过访问所有频道字符串名称,ChannelIds但在这里找不到。

"facebook"例如,我知道我可以直接编写,但是使用提供的列表可以防止任何拼写错误并提高可读性。

因此,ChannelIdsin的等价物是botframeworkv4什么?

Nic*_*s R 6

2019-2020 响应:

频道列表Channels在 Microsoft.Bot.Connector 命名空间中的对象中可用:

https://github.com/microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Connector/Channels.cs

2018年回应:

ChannelId 仍然是 v4 中 Activity 对象中的现有属性,请参阅来源:

https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Schema/IActivity.cs

/// <summary>
/// Channel this activity is associated with
/// </summary>
string ChannelId { get; set; }
Run Code Online (Sandbox Code Playgroud)

channelId 值列表在 v4 中仍然可用Microsoft.Bot.Builder.Classic

https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder.Classic/Microsoft.Bot.Builder.Classic/ConnectorEx/IChannelCapability.cs

public sealed class ChannelIds
{
    public const string Facebook = "facebook";
    public const string Skype = "skype";
    public const string Msteams = "msteams";
    public const string Telegram = "telegram";
    public const string Kik = "kik";
    public const string Email = "email";
    public const string Slack = "slack";
    public const string Groupme = "groupme";
    public const string Sms = "sms";
    public const string Emulator = "emulator";
    public const string Directline = "directline";
    public const string Webchat = "webchat";
    public const string Console = "console";
    public const string Cortana = "cortana";
}
Run Code Online (Sandbox Code Playgroud)

旁注:您可以简单地添加自己的列表:

public enum ChannelEnum
{
    emulator,
    facebook,
    skype,
    webchat,
    directline
    // ...
}
Run Code Online (Sandbox Code Playgroud)

并使用 activity.ChannelId == ChannelEnum.webchat.ToString()


Zia*_*iki 5

ChannelIdsChannels在 C# V4 SDK 中替换为 ,可在Microsoft.Bot.Connector.

检查特定频道可以轻松完成,例如:

var isEmail = turnContext.Activity.ChannelId == Channels.Email;
Run Code Online (Sandbox Code Playgroud)

如果您需要将自定义渠道(或例如 Android、iOS)添加到列表中,请使用 Nicholas R 的答案。