How to get the organization/company name in bot and message extension

%3CLINGO-SUB%20id%3D%22lingo-sub-2645062%22%20slang%3D%22en-US%22%3ERe%3A%20How%20to%20get%20the%20organization%2Fcompany%20name%20in%20bot%20and%20message%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2645062%22%20slang%3D%22en-US%22%3E%3CP%3EI%20tried%20using%20the%20microsoft-graph-client%20node%20js%20module%20but%20getting%20the%20following%20error%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%20%5BonTurnError%5D%20unhandled%20error%3A%20Error%3A%20The%20identity%20of%20the%20calling%20application%20could%20not%20be%20established.%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThese%20are%20the%20code%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Eimport%20%22isomorphic-fetch%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20import%20%22%40babel%2Fpolyfill%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20import%20%7B%20Client%20%7D%20from%20%22%40microsoft%2Fmicrosoft-graph-client%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20%7B%20ClientSecretCredential%2C%20ChainedTokenCredential%20%7D%20%3D%20require(%22%40azure%2Fidentity%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20import%20%7B%20TokenCredentialAuthenticationProvider%2C%20TokenCredentialAuthenticationProviderOptions%20%7D%20from%20%22%40microsoft%2Fmicrosoft-graph-client%2FauthProviders%2FazureTokenCredentials%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20credential%20%3D%20new%20ClientSecretCredential(%3CTENANTID%3E%2C%20%3CCLIENTID%3E%2C%20%3CCLIENTSECRET%3E)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20authProvider%20%3D%20new%20TokenCredentialAuthenticationProvider(credential%2C%20%7B%20scopes%3A%20%5B'https%3A%2F%2Fgraph.microsoft.com%2F.default'%5D%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20client%20%3D%20Client.initWithMiddleware(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20debugLogging%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20authProvider%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20res%20%3D%20await%20client.api(%22%2Forganization%22).get()%3C%2FCLIENTSECRET%3E%3C%2FCLIENTID%3E%3C%2FTENANTID%3E%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2639942%22%20slang%3D%22en-US%22%3EHow%20to%20get%20the%20organization%2Fcompany%20name%20in%20bot%20and%20message%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2639942%22%20slang%3D%22en-US%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20am%20using%20the%20bot%20framework%20to%20create%20the%20bot%20and%20message%20extensions.%20I%20would%20like%20to%20know%20how%20to%20get%20the%20organization%2Fcompany%20name%20in%20bot%20and%20extension.%20In%20the%20bot%20payload(context)%2C%20I%20can%20see%20the%20tenantId%20but%20couldn't%20see%20the%20organization%20details.%20How%20can%20I%20get%20it%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20tried%20using%20the%20microsoft-graph-client%20node%20js%20module%20but%20getting%20the%20following%20error%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%20%5BonTurnError%5D%20unhandled%20error%3A%20Error%3A%20The%20identity%20of%20the%20calling%20application%20could%20not%20be%20established.%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EThese%20are%20the%20code%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3Eimport%20%22isomorphic-fetch%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20import%20%22%40babel%2Fpolyfill%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20import%20%7B%20Client%20%7D%20from%20%22%40microsoft%2Fmicrosoft-graph-client%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20%7B%20ClientSecretCredential%2C%20ChainedTokenCredential%20%7D%20%3D%20require(%22%40azure%2Fidentity%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20import%20%7B%20TokenCredentialAuthenticationProvider%2C%20TokenCredentialAuthenticationProviderOptions%20%7D%20from%20%22%40microsoft%2Fmicrosoft-graph-client%2FauthProviders%2FazureTokenCredentials%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20credential%20%3D%20new%20ClientSecretCredential(%3CTENANTID%3E%2C%20%3CCLIENTID%3E%2C%20%3CCLIENTSECRET%3E)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20authProvider%20%3D%20new%20TokenCredentialAuthenticationProvider(credential%2C%20%7B%20scopes%3A%20%5B'https%3A%2F%2Fgraph.microsoft.com%2F.default'%5D%20%7D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20client%20%3D%20Client.initWithMiddleware(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20debugLogging%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20authProvider%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20res%20%3D%20await%20client.api(%22%2Forganization%22).get()%3B%3C%2FCLIENTSECRET%3E%3C%2FCLIENTID%3E%3C%2FTENANTID%3E%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2639942%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EDeveloper%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Contributor

Hi,

 

I am using the bot framework to create the bot and message extensions. I would like to know how to get the organization/company name in bot and extension. In the bot payload(context), I can see the tenantId but couldn't see the organization details. How can I get it?

 

I tried using the microsoft-graph-client node js module but getting the following error

 [onTurnError] unhandled error: Error: The identity of the calling application could not be established.

These are the code

import "isomorphic-fetch";
            import "@babel/polyfill";
            import { Client } from "@microsoft/microsoft-graph-client";

            const { ClientSecretCredential, ChainedTokenCredential } = require("@azure/identity");
            import { TokenCredentialAuthenticationProvider, TokenCredentialAuthenticationProviderOptions } from "@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials";

            const credential = new ClientSecretCredential(<tenantId>, <clientId>, <clientSecret>);

            const authProvider = new TokenCredentialAuthenticationProvider(credential, { scopes: ['https://graph.microsoft.com/.default'] });
            const client = Client.initWithMiddleware({
                debugLogging: true,
                authProvider,
            });

            const res = await client.api("/organization").get();
1 Reply

@fabin10 

There are two common reasons that cause this particular error:
The first being the Azure AD application is not figured to be available to any organization. You can confirm the Azure AD application is configured correctly by checking the supported account type configuration found in the authentication section.

The second reason you might encounter this error is due to the Azure AD consent framework.

And as you mentioned ,In the bot payload(context), you will get tenant Id but won't the organization details. You can refer this link to get Org details using MS Graph API.