Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过图形Api向团队发送聊天/频道消息_Javascript_Azure_Microsoft Graph Api_Single Page Application_Microsoft Teams - Fatal编程技术网

Javascript 通过图形Api向团队发送聊天/频道消息

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,我正试图通过以下方式代表团队中的用户发送消息:- 发布

通过同样的方式

但是我不断地犯这个错误-

{

}

SPA是使用Azure AD应用程序注册生成的,并且已向该应用程序授予以下API权限: ChannelMessage.Send(代表)、Chat.ReadWrite(代表)、ChatMessage.Send(代表)

当从Microsoft Graph explorer门户调用时,上述API起作用

我还比较了Graph Explorer和我的Azure AD应用程序在jwt.io上的访问令牌,两者都有作用域- [ChannelMessage.Send]将消息发送到频道所需的


如果我遗漏了什么或者我做错了什么,需要帮助。

我不是这方面的专家,但我认为您不能直接从不受信任的客户(即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完成更新。感谢您的支持。