Javascript 通过图形Api向团队发送聊天/频道消息
我有一个SPA,我正试图通过以下方式代表团队中的用户发送消息:- 发布 通过同样的方式 但是我不断地犯这个错误- { } SPA是使用Azure AD应用程序注册生成的,并且已向该应用程序授予以下API权限: ChannelMessage.Send(代表)、Chat.ReadWrite(代表)、ChatMessage.Send(代表) 当从Microsoft Graph explorer门户调用时,上述API起作用 我还比较了Graph Explorer和我的Azure AD应用程序在jwt.io上的访问令牌,两者都有作用域- [ChannelMessage.Send]将消息发送到频道所需的Javascript 通过图形Api向团队发送聊天/频道消息,javascript,azure,microsoft-graph-api,single-page-application,microsoft-teams,Javascript,Azure,Microsoft Graph Api,Single Page Application,Microsoft Teams,我有一个SPA,我正试图通过以下方式代表团队中的用户发送消息:- 发布 通过同样的方式 但是我不断地犯这个错误- { } SPA是使用Azure AD应用程序注册生成的,并且已向该应用程序授予以下API权限: ChannelMessage.Send(代表)、Chat.ReadWrite(代表)、ChatMessage.Send(代表) 当从Microsoft Graph explorer门户调用时,上述API起作用 我还比较了Graph Explorer和我的Azure AD应用程序在jwt.i
如果我遗漏了什么或者我做错了什么,需要帮助。我不是这方面的专家,但我认为您不能直接从不受信任的客户(即SPA)连接到图表,您首先需要获得“代表”令牌(这意味着您需要有自己的后端API来建立安全连接并检索此令牌)。您可以在此处看到此(dotnet和node)的示例:我不是这方面的专家,但我认为您不能直接从不受信任的客户端(即SPA)连接到图形,您首先需要获得“代表”令牌(这意味着您需要有自己的后端API才能建立安全连接并检索此令牌)。您可以在此处看到此(点网和节点)的示例:使用requires
ChannelMessage.Send
Group.ReadWrite.All
权限向频道发布消息
这是用于向通道发送消息的代码段,您需要实现以传递它graphClient
,我为我的租户测试了它,并且成功地在通道中发送消息。
下面是代码片段
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var chatMessage = new ChatMessage
{
Body = new ItemBody
{
Content = "Hello World"
}
};
await graphClient.Teams["{TeamId}"].Channels["{ChannelId}"].Messages
.Request()
.AddAsync(chatMessage);
使用
ChannelMessage.Send
Group.ReadWrite.All
权限向频道发布消息
这是用于向通道发送消息的代码段,您需要实现以传递它graphClient
,我为我的租户测试了它,并且成功地在通道中发送消息。
下面是代码片段
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var chatMessage = new ChatMessage
{
Body = new ItemBody
{
Content = "Hello World"
}
};
await graphClient.Teams["{TeamId}"].Channels["{ChannelId}"].Messages
.Request()
.AddAsync(chatMessage);
请共享错误消息的requestid和时间戳。@Shiva MSFTIdentity“日期”:“2020-12-03T16:16:55”,“请求id”:“353df509-8469-41f7-9059-f192ac21e214”错误的原因不是您缺乏权限,而是您使用了错误的令牌调用api。请检查您的访问者,确保其与您的api匹配。使用来解析您的访问令牌并提供屏幕截图。@AbhishekSharma-您能够解决您的问题吗?如果您仍然被卡住,请告诉我们。@Wajeed MSFT感谢foll欠了。在我的项目中,实际上更改authProvider不是我的选项。但我通过使用DeepLinks实现了我试图实现的目标。感谢支持。请共享错误消息的requestid和时间戳。@Shiva MSFTIdentity“date:”2020-12-03T16:16:55,“request id:”353df509-8469-41f7-9059-f192ac21e214错误的原因不是您缺乏权限,而是您使用了错误的令牌调用api。请检查您的访问者,确保其与您的api匹配。使用来解析您的访问令牌并提供屏幕截图。@AbhishekSharma-您能够解决您的问题吗?如果您仍然被卡住,请告诉我们。@Wajeed MSFT感谢foll欠了。实际上,在我的项目中,更改authProvider不是我的选项。但我使用DeepLinks实现了我试图实现的目标。感谢支持。我已经实现了auth,并使用MSAL js 2.0(auth代码流)创建了authProvider。我已尝试将该authProvider对象传递给graphClient,但响应相同。是否可以尝试使用Microsoft identity Client和Microsoft graph Auth dll创建?请确保您具有所述的权限。谢谢跟进。实际上,在我的项目中,更改authProvider不是我的选项。但我实现了我尝试的目标我正在使用DeepLinks来完成。感谢您的支持。我已经使用MSAL js 2.0(auth代码流)实现了auth并创建了一个authProvider。我已尝试将该authProvider对象传递给graphClient,但响应相同。是否可以尝试使用Microsoft identity Client和Microsoft graph Auth dll创建?请确保您具有所述的权限。谢谢跟进。实际上,在我的项目中,更改authProvider不是我的选项。但我实现了我尝试的目标正在使用DeepLinks完成更新。感谢您的支持。