如何使用Graph API在MS Teams中发布消息

3

我正在尝试使用以下代码通过Graph API向MS Teams发送消息。

Original Answer翻译成"最初的回答"

 List<Recipient> recipients = new List<Recipient>();
        recipients.Add(new Recipient
        {
            EmailAddress = new EmailAddress
            {
                Address = "user1@abctest.onmicrosoft.com"
            }
        });

        // Create the message.
        Message msg = new Message
        {
            Body = new ItemBody
            {
                Content = "Test message3",
                ContentType = BodyType.Text,
            },
            ToRecipients = recipients
        };

        _graphServiceClient.Users["fe0bb333-3334c49-a3eb-25af61fed1db"].SendMail(msg, true).Request().PostAsync().Wait();

这段代码不能在MS Team中发送消息,而是通过电子邮件发送消息。
我正在遵循文档https://learn.microsoft.com/en-us/graph/api/message-send?view=graph-rest-1.0并尝试使用Graph Explorer发送消息,但无法正常工作。
发布:https://graph.microsoft.com/v1.0/users/fe0bb333-3335-4c49-a3eb-25af61fed1db/messages/22229b36-a7cb-4a33-a9f9-dd75742bf067/send 请求正文

{ "Body": "Hello World" }

但是,我从Graph Explorer获得以下错误:
{
    "error": {
        "code": "ErrorInvalidIdMalformed",
        "message": "Id is malformed.",
        "innerError": {
            "request-id": "9cddabed-f886-4c89-be8b-7b5735ad957f",
            "date": "2019-04-21T05:37:11"
        }
    }
}
2个回答

5

根据文档,用户现在可以创建聊天 - undefined
谢谢 @Luv2Learn,我已经更新了答案以反映新的方法。 - undefined

1
今天,Graph 中 Microsoft Teams 的 API 仅支持向频道发送消息,而不是向用户(私人聊天)发送消息。如您在这里所见,只有频道操作被列出。

感谢 @baywet 的更新。是的,我也在 Graph Explorer 工具中进行了测试,它可以在频道中发送消息。是否有任何解决方法、调整或其他 API(例如 EWS API),可用于在私人消息中发送消息(用户对用户)? - undefined
微软团队没有其他公共API。我知道团队在某些方面依赖Skype for Business基础设施,但不确定私人消息是否其中之一。但你可以查看UCWA,看看它是否在将来出现在团队中。 - undefined
另一种方法可能是利用一个机器人来处理用户的沟通,不确定它是否适合您的情况。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接