POST /v1.0/teams/{id}/channels/{id}/messages returns Forbidden

New Contributor

I'm trying to send message to teams channel.

This is what Scope uses.

when I'm trying to call that API with the acquired token, I get this response:

  "error": {
    "code": "Forbidden",
    "message": "Forbidden",
    "innerError": {
      "date": "2020-07-17T02:01:44",
      "request-id": "42c27cb9-7e10-4802-8ec5-19932d01a332"


Do I need an Office 365 license to use it? 

3 Replies

Hi @Keita_Yama 


Presume you have checked that via Graph explorer? If so did you click on the new permissions tab to ensure everything that is required is consented?


Also I just want to be sure you are passing in a valid message payload too?


As for the licensing part,  I would say that ultimately if it is being posted as a user, that user would need to be licensed. However I would just try it vs a licensed user as is to confirm that theory. 







Yes, I tried it in Graph explorer.

Try it with an account without a Microsoft 365 Business Standard license, you will get an error.

The parameter I am requesting is this.

  "body": {
    "content": "Hello World"


Sending the same request from an account with an Office365 license will be successful.

Are there APIs that are not available with or without a license? Tell me about it.


best response confirmed by Keita_Yama (New Contributor)



Ah, OK. Sorry, so you have already proved the licensing point.


I am afraid the Graph allows you to tap into the many O365 services, but it does not circumvent permissions or licensing requirements.


I can only think if the message is to be posted as a non user, you would probably want it to be posted as a bot or something. That will still have its own requirements but may ring more true to your requirement of not wanting to post as a user.


You could also see if that call can be run with application permissions.