Prakash
Prakash

Reputation: 482

How to post message in MS Teams using Graph API

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://learn.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"
        }
    }
}

Upvotes: 3

Views: 29241

Answers (2)

Raza
Raza

Reputation: 51

The Teams API allows creating new chats, as well as sending messages to existing ones.

Create a new chat object

Send messages to existing chats

List chats to retrieve the ID of an existing chat

Other options

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

Upvotes: 5

baywet
baywet

Reputation: 5382

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.

Upvotes: 1

Related Questions