@microsoft/teamsapp-cli
Version:
Teams Toolkit CLI is a text-based command line interface that can help scaffold, validate, and deploy applications for Microsoft Teams from the terminal or a CI/CD process.
1 lines • 1.46 kB
JavaScript
const{TeamsActivityHandler,CardFactory}=require("botbuilder"),{handleMessageExtensionQueryWithSSO,OnBehalfOfUserCredential}=require("@microsoft/teamsfx"),{Client}=require("@microsoft/microsoft-graph-client"),{TokenCredentialAuthenticationProvider}=require("@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials");require("isomorphic-fetch");const oboAuthConfig={authorityHost:process.env.M365_AUTHORITY_HOST,clientId:process.env.M365_CLIENT_ID,tenantId:process.env.M365_TENANT_ID,clientSecret:process.env.M365_CLIENT_SECRET},initialLoginEndpoint=process.env.INITIATE_LOGIN_ENDPOINT;class TeamsBot extends TeamsActivityHandler{constructor(){super()}async handleTeamsMessagingExtensionQuery(context,query){return await handleMessageExtensionQueryWithSSO(context,oboAuthConfig,initialLoginEndpoint,"User.Read",(async token=>{const credential=new OnBehalfOfUserCredential(token.ssoToken,oboAuthConfig),authProvider=new TokenCredentialAuthenticationProvider(credential,{scopes:["User.Read"]}),graphClient=Client.initWithMiddleware({authProvider}),profile=await graphClient.api("/me").get();return{composeExtension:{type:"result",attachmentLayout:"list",attachments:[CardFactory.thumbnailCard(profile.displayName,profile.mail)]}}}))}async handleTeamsMessagingExtensionSelectItem(context,obj){return{composeExtension:{type:"result",attachmentLayout:"list",attachments:[CardFactory.heroCard(obj.name,obj.description)]}}}}module.exports.TeamsBot=TeamsBot;