88 lines
2.3 KiB
TypeScript
88 lines
2.3 KiB
TypeScript
import { INodeParams, INodeCredential } from '../src/Interface'
|
|
|
|
// Comprehensive scopes for Microsoft Teams operations
|
|
const scopes = [
|
|
// Basic authentication
|
|
'openid',
|
|
'offline_access',
|
|
|
|
// User permissions
|
|
'User.Read',
|
|
'User.ReadWrite.All',
|
|
|
|
// Teams and Groups
|
|
'Group.ReadWrite.All',
|
|
'Team.ReadBasic.All',
|
|
'Team.Create',
|
|
'TeamMember.ReadWrite.All',
|
|
|
|
// Channels
|
|
'Channel.ReadBasic.All',
|
|
'Channel.Create',
|
|
'Channel.Delete.All',
|
|
'ChannelMember.ReadWrite.All',
|
|
|
|
// Chat operations
|
|
'Chat.ReadWrite',
|
|
'Chat.Create',
|
|
'ChatMember.ReadWrite',
|
|
|
|
// Messages
|
|
'ChatMessage.Send',
|
|
'ChatMessage.Read',
|
|
'ChannelMessage.Send',
|
|
'ChannelMessage.Read.All',
|
|
|
|
// Reactions and advanced features
|
|
'TeamsActivity.Send'
|
|
]
|
|
|
|
class MsoftTeamsOAuth2 implements INodeCredential {
|
|
label: string
|
|
name: string
|
|
version: number
|
|
inputs: INodeParams[]
|
|
description: string
|
|
|
|
constructor() {
|
|
this.label = 'Microsoft Teams OAuth2'
|
|
this.name = 'microsoftTeamsOAuth2'
|
|
this.version = 1.0
|
|
this.description =
|
|
'You can find the setup instructions <a target="_blank" href="https://docs.flowiseai.com/integrations/langchain/tools/microsoft-teams">here</a>'
|
|
this.inputs = [
|
|
{
|
|
label: 'Authorization URL',
|
|
name: 'authorizationUrl',
|
|
type: 'string',
|
|
default: 'https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/authorize'
|
|
},
|
|
{
|
|
label: 'Access Token URL',
|
|
name: 'accessTokenUrl',
|
|
type: 'string',
|
|
default: 'https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/token'
|
|
},
|
|
{
|
|
label: 'Client ID',
|
|
name: 'clientId',
|
|
type: 'string'
|
|
},
|
|
{
|
|
label: 'Client Secret',
|
|
name: 'clientSecret',
|
|
type: 'password'
|
|
},
|
|
{
|
|
label: 'Scope',
|
|
name: 'scope',
|
|
type: 'string',
|
|
hidden: true,
|
|
default: scopes.join(' ')
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
module.exports = { credClass: MsoftTeamsOAuth2 }
|