2
votes

I am trying to send messages to MS Teams using Graph API using the following code.

 List<Recipient> recipients = new List<Recipient>();
        recipients.Add(new Recipient
        {
            EmailAddress = new EmailAddress
            {
                Address = "[email protected]"
            }
        });

        // 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();

This code does not send message in MS Team but instead send that message in email.

I am following the documentation https://docs.microsoft.com/en-us/graph/api/message-send?view=graph-rest-1.0 and was tyring Graph Explorer to send message but not working.

Post: https://graph.microsoft.com/v1.0/users/fe0bb333-3335-4c49-a3eb-25af61fed1db/messages/22229b36-a7cb-4a33-a9f9-dd75742bf067/send

Request Body

{ "Body": "Hello World" }

But, I get following error from Graph Explorer:

{
    "error": {
        "code": "ErrorInvalidIdMalformed",
        "message": "Id is malformed.",
        "innerError": {
            "request-id": "9cddabed-f886-4c89-be8b-7b5735ad957f",
            "date": "2019-04-21T05:37:11"
        }
    }
}
2

2 Answers

1
votes

Today the APIs for Microsoft Teams in the Graph only support sending messages to channels, not to users (private chat). As you can see here, only channels operations are listed out.

1
votes

Update as of October 2020

The Teams API now supports sending messages to users directly using send ChatMessage.

However, you can't create new chats, you can only create new messages in existing chats:

This API cannot create a new chat; you must use the list chats method to retrieve the ID of an existing chat before creating a chat message.

If you're agnostic to how you send messages to users, you may be interested in sending proactive messages and proactive messaging for bots.