您如何检测 MS Bot Framework 正在响应哪个消息传递平台?
How do you detect which messaging platform MS Bot Framework is responding to?
我希望能够根据用户使用的是 Slack 还是 Facebook Messenger 还是 SMS 向他们提供略有不同的响应,但我不确定如何检测哪个消息传递平台是用户当前在线。
这有可能吗?我似乎无法在文档中找到这方面的任何示例。
我在研究一些示例代码时找到了自己问题的答案:
var isSkypeMessage = function (message) {
return message.source === 'skype';
};
您可以在 session.message.source
.
上获取消息的来源平台
该值将是以下值之一(取自 Channel.js source code):
exports.channels = {
facebook: 'facebook',
skype: 'skype',
telegram: 'telegram',
kik: 'kik',
email: 'email',
slack: 'slack',
groupme: 'groupme',
sms: 'sms',
emulator: 'emulator',
directline: 'directline',
console: 'console'
};
这绝对是可能的 - 请参阅以下示例以了解如何在 C# 中执行此操作:
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
string msg = activity.Text;
//setting ChannelID
string channelID = activity.ChannelId;
switch (channelID)
{
case "skype":
case "emulator":
default:
break;
}
}
文档在这里:https://docs.microsoft.com/en-us/bot-framework/resources-identifiers-guide#channel-id
.channelID
属性 的大部分结果都非常明显,"slack"、"kik" 等,但如果匹配未命中,则只需调试和看看是什么returns :)
我希望能够根据用户使用的是 Slack 还是 Facebook Messenger 还是 SMS 向他们提供略有不同的响应,但我不确定如何检测哪个消息传递平台是用户当前在线。
这有可能吗?我似乎无法在文档中找到这方面的任何示例。
我在研究一些示例代码时找到了自己问题的答案:
var isSkypeMessage = function (message) {
return message.source === 'skype';
};
您可以在 session.message.source
.
该值将是以下值之一(取自 Channel.js source code):
exports.channels = {
facebook: 'facebook',
skype: 'skype',
telegram: 'telegram',
kik: 'kik',
email: 'email',
slack: 'slack',
groupme: 'groupme',
sms: 'sms',
emulator: 'emulator',
directline: 'directline',
console: 'console'
};
这绝对是可能的 - 请参阅以下示例以了解如何在 C# 中执行此操作:
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
string msg = activity.Text;
//setting ChannelID
string channelID = activity.ChannelId;
switch (channelID)
{
case "skype":
case "emulator":
default:
break;
}
}
文档在这里:https://docs.microsoft.com/en-us/bot-framework/resources-identifiers-guide#channel-id
.channelID
属性 的大部分结果都非常明显,"slack"、"kik" 等,但如果匹配未命中,则只需调试和看看是什么returns :)