2023-06-28 03:19:25 -07:00
import type { ICredentialType , INodeProperties } from 'n8n-workflow' ;
const scopes = [
'tweet.read' ,
'users.read' ,
'tweet.write' ,
'tweet.moderate.write' ,
'users.read' ,
'follows.read' ,
'follows.write' ,
'offline.access' ,
'like.read' ,
'like.write' ,
'dm.write' ,
'dm.read' ,
'list.read' ,
'list.write' ,
] ;
export class TwitterOAuth2Api implements ICredentialType {
name = 'twitterOAuth2Api' ;
extends = [ 'oAuth2Api' ] ;
2023-09-15 06:04:16 -07:00
displayName = 'X OAuth2 API' ;
2023-06-28 03:19:25 -07:00
documentationUrl = 'twitter' ;
properties : INodeProperties [ ] = [
{
displayName :
2024-08-08 07:44:19 -07:00
'Some operations require a Basic or Pro API. Refer to <a href="https://developer.x.com/en/docs/twitter-api" target="_blank">X API Docs</a> for more information.' ,
name : 'apiPermissions' ,
2023-06-28 03:19:25 -07:00
type : 'notice' ,
default : '' ,
} ,
{
displayName : 'Grant Type' ,
name : 'grantType' ,
type : 'hidden' ,
default : 'pkce' ,
} ,
{
displayName : 'Authorization URL' ,
name : 'authUrl' ,
type : 'hidden' ,
default : 'https://twitter.com/i/oauth2/authorize' ,
} ,
{
displayName : 'Access Token URL' ,
name : 'accessTokenUrl' ,
type : 'hidden' ,
default : 'https://api.twitter.com/2/oauth2/token' ,
} ,
{
displayName : 'Scope' ,
name : 'scope' ,
type : 'hidden' ,
default : ` ${ scopes . join ( ' ' ) } ` ,
} ,
{
displayName : 'Auth URI Query Parameters' ,
name : 'authQueryParameters' ,
type : 'hidden' ,
default : '' ,
} ,
{
displayName : 'Authentication' ,
name : 'authentication' ,
type : 'hidden' ,
default : 'header' ,
} ,
] ;
}