Search code examples
python-3.xmicrosoft-graph-apibotframeworkmicrosoft-teamsmicrosoft-graph-teams

How to get user id using email id in teams using python


I'm creating a bot to notify a user after an action has been done. Where i'm able to get my details using the below(screenshot) code.

User details

Now in order to send a message to a user through a bot i would need his/her ID before hand to send a notification like in the above case i'm able to extract my info as i'm already logged in Teams. Unfortunately alphanumeric ID is very difficult to use and needs to be there before requesting and sending the notification.

Below is the JSON result if the ID is already known.

Response body
{
    "id": "29:1GcS4EyB_oSI8A88XmWBN7NJFyMqe3QGnJdgLfFGkJnVelzRGos0bPbpsfJjcbAD22bmKc4GMbrY2g4JDrrA8vM06X1-cHHle4zOE6U4ttcc",
    "objectId": "9d3e08f9-a7ae-43aa-a4d3-de3f319a8a9c",
    "givenName": "Larry",
    "surname": "Brown",
    "email": "Larry.Brown@fabrikam.com",
    "userPrincipalName": "labrown@fabrikam.com",
    "tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47", 
    "userRole":"user"
}

How i can get the unique ID of the user by using email id so that i can send a personal message to him/her using bot.


Solution

  • There is an option to fetch conversationChatId to send proactive message.

    Before you fetch the conversation Id, you should check whether your bot is currently installed for a message recipient or not.

    Note: Installation of app via Graph API triggers conversation update event for Bot.