Cine
Cine

Reputation: 4402

Get Teams Graph API id from bot framework request

Bot framework .Activity.TeamsGetTeamInfo().Id Docs gives Ids in the format of 19:[email protected], but Graph API takes Ids in the form of GUIDs 1be44bc0-02cb-4715-9ecc-cba191e64cb5 Docs.

Graph API will return the "InternalId" which matches the Bot Framework, but how do I get the GUID from the Bot framework request?

I just want to do simple stuff like invite people to a team, create/delete teams/channels.

The Request to the server does not include the info, so DialogContext.Activity.TeamsGetTeamInfo().AadGroupId is useless:

{
    "text": "<at>TestBot</at> help\n",
    "textFormat": "plain",
    "attachments": [
        {
            "contentType": "text/html",
            "content": "<div><div><span itemscope=\"\" itemtype=\"http://schema.skype.com/Mention\" itemid=\"0\">TestBot</span> help</div>\n</div>"
        }
    ],
    "type": "message",
    "timestamp": "2022-05-26T06:33:49.1002055Z",
    "localTimestamp": "2022-05-26T13:33:49.1002055+07:00",
    "id": "165354145676828864",
    "channelId": "msteams",
    "serviceUrl": "https://smba.trafficmanager.net/emea/",
    "from": {
        "id": "29:1d9mrAWL8cZKs3gp4Pasd8WD771EhsE1tlCs_MQn1Rb5QTmzk71GK934z8sxyHBE0eRFhWf-YslJXt_HdNDag",
        "name": "MyName",
        "aadObjectId": "guid-guid-guid-guid-guid"
    },
    "conversation": {
        "isGroup": true,
        "conversationType": "channel",
        "tenantId": "guid-guid-guid-guid-guid",
        "id": "19:[email protected];messageid=1653026739856"
    },
    "recipient": {
        "id": "28:guid-guid-guid-guid-guid",
        "name": "TestMyBot2343456345656367"
    },
    "entities": [
        {
            "mentioned": {
                "id": "28:guid-guid-guid-guid-guid",
                "name": "TestBot"
            },
            "text": "<at>TestBot</at>",
            "type": "mention"
        },
        {
            "locale": "en-US",
            "country": "US",
            "platform": "Windows",
            "timezone": "here",
            "type": "clientInfo"
        }
    ],
    "channelData": {
        "teamsChannelId": "19:[email protected]",
        "teamsTeamId": "19:[email protected]",
        "channel": {
            "id": "19:[email protected]"
        },
        "team": {
            "id": "19:[email protected]"
        },
        "tenant": {
            "id": "guid-guid-guid-guid-guid"
        }
    },
    "locale": "en-US",
    "localTimezone": "here"
}

Upvotes: 1

Views: 492

Answers (1)

Cine
Cine

Reputation: 4402

It seems DialogContext.Activity.TeamsGetTeamInfo() only returns the information given from the payload, and the default from Teams is to NOT include the AadGroupId.

There is however an 'active' version of the same await TeamsInfo.GetTeamDetailsAsync(dc.Context). This will return the full object.

Upvotes: 2

Related Questions