Modules@robinpath/twitter
twitter

@robinpath/twitter

0.1.1Node.jsPublic

Twitter/X module for RobinPath.

Twitter/X

Twitter/X module for RobinPath.

Package: @robinpath/twitter | Category: Social Media | Type: Integration

Authentication

twitter.setToken "AAAA...your-bearer-token"

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the twitter module when you need to:

  • Create a new tweet -- Use twitter.createTweet to perform this operation
  • Delete a tweet by ID -- Use twitter.deleteTweet to perform this operation
  • Get a single tweet by ID with optional expansions and fields -- Use twitter.getTweet to perform this operation
  • Get multiple tweets by IDs -- Use twitter.getTweets to perform this operation
  • Get tweets from a user's timeline -- Use twitter.getUserTimeline to perform this operation

Quick Reference

FunctionDescriptionReturns
setTokenStore a Bearer token for X/Twitter API v2 authentication{ok: true}
createTweetCreate a new tweet{data: {id, text}}
deleteTweetDelete a tweet by ID{data: {deleted: true}}
getTweetGet a single tweet by ID with optional expansions and fields{data: {id, text, ...}, includes?: {...}}
getTweetsGet multiple tweets by IDs{data: [{id, text, ...}]}
getUserTimelineGet tweets from a user's timeline{data: [{id, text}], meta: {next_token?, result_count}}
getMentionsGet tweets mentioning a user{data: [{id, text}], meta: {next_token?, result_count}}
searchRecentSearch recent tweets (last 7 days) with a query{data: [{id, text}], meta: {newest_id, oldest_id, result_count, next_token?}}
getUserGet a user by username{data: {id, name, username}}
getUserByIdGet a user by their ID{data: {id, name, username}}
getMeGet the authenticated user's profile{data: {id, name, username, description, profile_image_url, public_metrics}}
getFollowersGet followers of a user{data: [{id, name, username}], meta: {next_token?, result_count}}
getFollowingGet users that a user is following{data: [{id, name, username}], meta: {next_token?, result_count}}
followFollow a user (uses authenticated user as source){data: {following: true, pending_follow: false}}
unfollowUnfollow a user{data: {following: false}}
likeLike a tweet (uses authenticated user){data: {liked: true}}
unlikeUnlike a tweet (uses authenticated user){data: {liked: false}}
getLikedTweetsGet tweets liked by a user{data: [{id, text}], meta: {next_token?, result_count}}
retweetRetweet a tweet (uses authenticated user){data: {retweeted: true}}
unretweetUndo a retweet (uses authenticated user){data: {retweeted: false}}
getRetweetersGet users who retweeted a tweet{data: [{id, name, username}], meta: {next_token?, result_count}}
bookmarkBookmark a tweet (uses authenticated user){data: {bookmarked: true}}
removeBookmarkRemove a bookmarked tweet (uses authenticated user){data: {bookmarked: false}}
getBookmarksGet the authenticated user's bookmarked tweets{data: [{id, text}], meta: {next_token?, result_count}}
createListCreate a new list{data: {id, name}}
deleteListDelete a list{data: {deleted: true}}
addListMemberAdd a user to a list{data: {is_member: true}}
removeListMemberRemove a user from a list{data: {is_member: false}}
getListTweetsGet tweets from a list{data: [{id, text}], meta: {next_token?, result_count}}
sendDmSend a direct message to a user{data: {dm_conversation_id, dm_event_id}}
getDmEventsGet direct message events{data: [{id, text, event_type, ...}], meta: {next_token?, result_count}}

Functions

setToken

Store a Bearer token for X/Twitter API v2 authentication

Module: twitter | Returns: object -- {ok: true}

twitter.setToken "AAAA...your-bearer-token"
ParameterTypeRequiredDescription
bearerTokenstringYesBearer token (app-only or OAuth 2.0 user token)

createTweet

Create a new tweet

Module: twitter | Returns: object -- {data: {id, text}}

twitter.createTweet "Hello from RobinPath!"
ParameterTypeRequiredDescription
textstringYesTweet text (up to 280 characters)
optionsobjectNo{reply_settings?, quote_tweet_id?, reply?: {in_reply_to_tweet_id}, poll?: {options, duration_minutes}, media?: {media_ids}}

deleteTweet

Delete a tweet by ID

Module: twitter | Returns: object -- {data: {deleted: true}}

twitter.deleteTweet "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to delete

getTweet

Get a single tweet by ID with optional expansions and fields

Module: twitter | Returns: object -- {data: {id, text, ...}, includes?: {...}}

twitter.getTweet "1234567890" {"tweet.fields": "created_at,public_metrics"}
ParameterTypeRequiredDescription
tweetIdstringYesTweet ID
optionsobjectNo{expansions?, tweet.fields?, user.fields?}

getTweets

Get multiple tweets by IDs

Module: twitter | Returns: object -- {data: [{id, text, ...}]}

twitter.getTweets ["1234567890", "0987654321"]
ParameterTypeRequiredDescription
tweetIdsarrayYesArray of tweet IDs (or comma-separated string)
optionsobjectNo{expansions?, tweet.fields?, user.fields?}

getUserTimeline

Get tweets from a user's timeline

Module: twitter | Returns: object -- {data: [{id, text}], meta: {next_token?, result_count}}

twitter.getUserTimeline "123456" {"max_results": 10}
ParameterTypeRequiredDescription
userIdstringYesUser ID
optionsobjectNo{max_results?, pagination_token?, exclude?, tweet.fields?}

getMentions

Get tweets mentioning a user

Module: twitter | Returns: object -- {data: [{id, text}], meta: {next_token?, result_count}}

twitter.getMentions "123456" {"max_results": 5}
ParameterTypeRequiredDescription
userIdstringYesUser ID
optionsobjectNo{max_results?, pagination_token?, start_time?, end_time?}

searchRecent

Search recent tweets (last 7 days) with a query

Module: twitter | Returns: object -- {data: [{id, text}], meta: {newest_id, oldest_id, result_count, next_token?}}

twitter.searchRecent "robinpath lang:en" {"max_results": 10}
ParameterTypeRequiredDescription
querystringYesSearch query (Twitter search syntax)
optionsobjectNo{max_results?, start_time?, end_time?, next_token?, tweet.fields?, expansions?}

getUser

Get a user by username

Module: twitter | Returns: object -- {data: {id, name, username}}

twitter.getUser "elonmusk"
ParameterTypeRequiredDescription
usernamestringYesTwitter/X username (without @)

getUserById

Get a user by their ID

Module: twitter | Returns: object -- {data: {id, name, username}}

twitter.getUserById "44196397"
ParameterTypeRequiredDescription
userIdstringYesUser ID

getMe

Get the authenticated user's profile

Module: twitter | Returns: object -- {data: {id, name, username, description, profile_image_url, public_metrics}}

twitter.getMe
ParameterTypeRequiredDescription
(none)NoCall with no arguments

getFollowers

Get followers of a user

Module: twitter | Returns: object -- {data: [{id, name, username}], meta: {next_token?, result_count}}

twitter.getFollowers "123456" {"max_results": 100}
ParameterTypeRequiredDescription
userIdstringYesUser ID
optionsobjectNo{max_results?, pagination_token?, user.fields?}

getFollowing

Get users that a user is following

Module: twitter | Returns: object -- {data: [{id, name, username}], meta: {next_token?, result_count}}

twitter.getFollowing "123456" {"max_results": 100}
ParameterTypeRequiredDescription
userIdstringYesUser ID
optionsobjectNo{max_results?, pagination_token?, user.fields?}

follow

Follow a user (uses authenticated user as source)

Module: twitter | Returns: object -- {data: {following: true, pending_follow: false}}

twitter.follow "44196397"
ParameterTypeRequiredDescription
targetUserIdstringYesID of the user to follow

unfollow

Unfollow a user

Module: twitter | Returns: object -- {data: {following: false}}

twitter.unfollow "123456" "44196397"
ParameterTypeRequiredDescription
sourceUserIdstringYesID of the authenticated user
targetUserIdstringYesID of the user to unfollow

like

Like a tweet (uses authenticated user)

Module: twitter | Returns: object -- {data: {liked: true}}

twitter.like "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to like

unlike

Unlike a tweet (uses authenticated user)

Module: twitter | Returns: object -- {data: {liked: false}}

twitter.unlike "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to unlike

getLikedTweets

Get tweets liked by a user

Module: twitter | Returns: object -- {data: [{id, text}], meta: {next_token?, result_count}}

twitter.getLikedTweets "123456" {"max_results": 10}
ParameterTypeRequiredDescription
userIdstringYesUser ID
optionsobjectNo{max_results?, pagination_token?, tweet.fields?}

retweet

Retweet a tweet (uses authenticated user)

Module: twitter | Returns: object -- {data: {retweeted: true}}

twitter.retweet "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to retweet

unretweet

Undo a retweet (uses authenticated user)

Module: twitter | Returns: object -- {data: {retweeted: false}}

twitter.unretweet "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to unretweet

getRetweeters

Get users who retweeted a tweet

Module: twitter | Returns: object -- {data: [{id, name, username}], meta: {next_token?, result_count}}

twitter.getRetweeters "1234567890" {"max_results": 100}
ParameterTypeRequiredDescription
tweetIdstringYesTweet ID
optionsobjectNo{max_results?, pagination_token?, user.fields?}

bookmark

Bookmark a tweet (uses authenticated user)

Module: twitter | Returns: object -- {data: {bookmarked: true}}

twitter.bookmark "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to bookmark

removeBookmark

Remove a bookmarked tweet (uses authenticated user)

Module: twitter | Returns: object -- {data: {bookmarked: false}}

twitter.removeBookmark "1234567890"
ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to remove from bookmarks

getBookmarks

Get the authenticated user's bookmarked tweets

Module: twitter | Returns: object -- {data: [{id, text}], meta: {next_token?, result_count}}

twitter.getBookmarks {"max_results": 20}
ParameterTypeRequiredDescription
optionsobjectNo{max_results?, pagination_token?, tweet.fields?, expansions?}

createList

Create a new list

Module: twitter | Returns: object -- {data: {id, name}}

twitter.createList "My List" "A curated list" true
ParameterTypeRequiredDescription
namestringYesName of the list
descriptionstringNoDescription of the list
privatebooleanNoWhether the list is private (default: false)

deleteList

Delete a list

Module: twitter | Returns: object -- {data: {deleted: true}}

twitter.deleteList "1234567890"
ParameterTypeRequiredDescription
listIdstringYesList ID

addListMember

Add a user to a list

Module: twitter | Returns: object -- {data: {is_member: true}}

twitter.addListMember "1234567890" "44196397"
ParameterTypeRequiredDescription
listIdstringYesList ID
userIdstringYesUser ID to add

removeListMember

Remove a user from a list

Module: twitter | Returns: object -- {data: {is_member: false}}

twitter.removeListMember "1234567890" "44196397"
ParameterTypeRequiredDescription
listIdstringYesList ID
userIdstringYesUser ID to remove

getListTweets

Get tweets from a list

Module: twitter | Returns: object -- {data: [{id, text}], meta: {next_token?, result_count}}

twitter.getListTweets "1234567890" {"max_results": 25}
ParameterTypeRequiredDescription
listIdstringYesList ID
optionsobjectNo{max_results?, pagination_token?, tweet.fields?, expansions?}

sendDm

Send a direct message to a user

Module: twitter | Returns: object -- {data: {dm_conversation_id, dm_event_id}}

twitter.sendDm "44196397" "Hello from RobinPath!"
ParameterTypeRequiredDescription
participantIdstringYesUser ID of the recipient
textstringYesMessage text

getDmEvents

Get direct message events

Module: twitter | Returns: object -- {data: [{id, text, event_type, ...}], meta: {next_token?, result_count}}

twitter.getDmEvents {"max_results": 20}
ParameterTypeRequiredDescription
optionsobjectNo{max_results?, pagination_token?, dm_event.fields?, event_types?}

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Bearer token not set. Call twitter.setToken first.Check the error message for details
Twitter API ${method} ${endpoint} failed (${response.status}): ${String(detail)}Check the error message for details
Bearer token is required.Check the error message for details
Tweet text is required.Check the error message for details
Tweet ID is required.Check the error message for details
Tweet IDs are required.Check the error message for details
User ID is required.Check the error message for details
Search query is required.Check the error message for details
@desc "Create tweet and validate result"
do
  set $result as twitter.createTweet "Hello from RobinPath!"
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate Tweet

Retrieve all items and loop through them.

@desc "Setup authentication"
do
  twitter.setToken $token
enddo

@desc "Get tweet and iterate results"
do
  set $result as twitter.getTweet "1234567890" {"tweet.fields": "created_at,public_metrics"}
  each $item in $result
    print $item
  end
enddo

2. Create a new item with createTweet

Create a new resource and capture the result.

@desc "Setup authentication"
do
  twitter.setToken $token
enddo

@desc "Create tweet"
do
  set $result as twitter.createTweet "Hello from RobinPath!"
  print "Created: " + $result
enddo

3. Check before creating

List existing items and only create if needed.

@desc "Setup authentication"
do
  twitter.setToken $token
enddo

@desc "Get tweet and create tweet"
do
  set $existing as twitter.getTweet "1234567890" {"tweet.fields": "created_at,public_metrics"}
  if $existing == null
    twitter.createTweet "Hello from RobinPath!"
    print "Item created"
  else
    print "Item already exists"
  end
enddo

4. Multi-step Twitter/X workflow

Chain multiple twitter operations together.

@desc "Setup authentication"
do
  twitter.setToken $token
enddo

@desc "Create tweet, delete tweet, and more"
do
  set $r_createTweet as twitter.createTweet "Hello from RobinPath!"
  set $r_deleteTweet as twitter.deleteTweet "1234567890"
  set $r_getTweet as twitter.getTweet "1234567890" {"tweet.fields": "created_at,public_metrics"}
  print "All operations complete"
enddo

5. Safe createTweet with validation

Check results before proceeding.

@desc "Setup authentication"
do
  twitter.setToken $token
enddo

@desc "Create tweet and validate result"
do
  set $result as twitter.createTweet "Hello from RobinPath!"
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • facebook -- Facebook module for complementary functionality
  • instagram -- Instagram module for complementary functionality
  • linkedin -- LinkedIn module for complementary functionality
  • tiktok -- TikTok module for complementary functionality
  • pinterest -- Pinterest module for complementary functionality

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/twitter

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size9.0 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Category

marketing