Microsoft graph api team Bot SDK无法使用channel conversationUpdate引用获取团队信息
我有一个频道的conversationUpdate事件,我在下面的代码段中将其用作Microsoft graph api team Bot SDK无法使用channel conversationUpdate引用获取团队信息,microsoft-graph-api,microsoft-teams,microsoft-graph-teams,Microsoft Graph Api,Microsoft Teams,Microsoft Graph Teams,我有一个频道的conversationUpdate事件,我在下面的代码段中将其用作conversationReference。出于某种原因,当我尝试运行此代码时,我收到一个错误,提示“此方法仅在MS团队的范围内有效”。尽管据我所知,我提供的事件属于团队的范围(作为进一步证明,conversation.conversationType是channel)。相反,我能够成功地调用TeamsInfo.getPagedMembers(),如果我不在团队范围内,我可能会失败 const proactiveC
conversationReference
。出于某种原因,当我尝试运行此代码时,我收到一个错误,提示“此方法仅在MS团队的范围内有效”。尽管据我所知,我提供的事件属于团队的范围(作为进一步证明,conversation.conversationType
是channel
)。相反,我能够成功地调用TeamsInfo.getPagedMembers()
,如果我不在团队范围内,我可能会失败
const proactiveChannelHandler = async (turnContext) => {
try {
const teamDetails = await TeamsInfo.getTeamDetails(turnContext);
if (teamDetails) {
await turnContext.sendActivity(`The group ID is: ${teamDetails.aadGroupId}`);
} else {
await turnContext.sendActivity('This message did not come from a channel in a team.');
}
} catch (err) {
console.error(err);
}
}
adapter.continueConversation(conversationReference, proactiveChannelHandler);
我能够使用以下示例成功获得频道列表:
private static async Task ListChannelsAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
var channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, null, cancellationToken);
foreach (var channel in channels)
{
if (channel.Name == null)
channel.Name = "General";
}
await turnContext.SendActivityAsync(MessageFactory.Text($"Channels list: {string.Join(", ", channels.Select(c => c.Name).ToArray())}"), cancellationToken);
}
private static async Task ListChannelsAsync(ITurnContext turnContext,CancellationToken CancellationToken)
{
var channels=await TeamsInfo.GetTeamChannelsAsync(turnContext,null,cancellationToken);
foreach(通道中的var通道)
{
if(channel.Name==null)
channel.Name=“General”;
}
Wait turnContext.SendActivityAsync(MessageFactory.Text($”通道列表:{string.Join(“,”,Channels.Select(c=>c.Name.ToArray())}),cancellationToken);
}
我使用以下示例成功获得了频道列表:
private static async Task ListChannelsAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
var channels = await TeamsInfo.GetTeamChannelsAsync(turnContext, null, cancellationToken);
foreach (var channel in channels)
{
if (channel.Name == null)
channel.Name = "General";
}
await turnContext.SendActivityAsync(MessageFactory.Text($"Channels list: {string.Join(", ", channels.Select(c => c.Name).ToArray())}"), cancellationToken);
}
private static async Task ListChannelsAsync(ITurnContext turnContext,CancellationToken CancellationToken)
{
var channels=await TeamsInfo.GetTeamChannelsAsync(turnContext,null,cancellationToken);
foreach(通道中的var通道)
{
if(channel.Name==null)
channel.Name=“General”;
}
Wait turnContext.SendActivityAsync(MessageFactory.Text($”通道列表:{string.Join(“,”,Channels.Select(c=>c.Name.ToArray())}),cancellationToken);
}
看起来问题在于我缺少团队ID所需的第二个参数。看起来问题在于我缺少团队ID所需的第二个参数。您尝试过该示例吗?@Dev,除非我缺少什么,这似乎不相关。我们可以打电话讨论这个问题吗?请在microsoftteamsdev@microsoft.comHave您尝试了样本?@Dev除非我遗漏了什么,否则这似乎是无关的。我们可以打电话讨论这个问题吗?请将此问题转发到microsoftteamsdev@microsoft.com