A simplified version of Twitter’s V1 & V2 API 😮💨 with straight forward functions and callbacks. If you need quick simple functions such as follow, like, DM and others, then this package is for you. This package only contains two dependencies: Twitter SDK and Twitter API V2🙏. "Twitter V2 Simple" is also a combination of V1 and V2 to bring a seamless integrated workflow. 🦾 Contributor [email protected] This package is still under development. 🛠️
- Who am I
- Get users details
- Get users replied to tweet
- Follow a user 🤝
- Unfollow a user
- Get followers of a user
- Get following of a user
There are a few steps that need to take place before you can use the full functionality of Twitters V2 Api.
- Create a developer account for Twitter Twitter Developer
- After obtaining your developer account, you must get elevated access to Twitter V2 Api to complete all functions such as, follow, delete, like, and more. Twitter Developer - Elevated Access.
You will need to access your API keys, and Tokens to initiate the Twitter V2 client.
- Install NPM package
npm install twitter-v2-simple
- Import Twitter-V2-Simple
import TwitterV2Simple from 'twitter-v2-simple'; //Or const TwitterV2Simple = require('twitter-v2-simple');
- Enter your Twitter API tokens and secrets. Also make sure to use .ENV to protect your keys.
const twitter = new TwitterV2Simple({ appKey: 'KdfeirYYhdf........', appSecret: 'TYRhdiIuh......', accessToken: '1435667.......', accessSecret: 'mxGHjgjj.....', bearerToken: 'AAAAAAAAA......' });
Twitter V2 Simple only focuses on the main core functions in the user and tweet category. For more advanced functions please visit the original Twitter SDK for further documentation. Twitter SDK
Get the current logged in user for Twitter.
//Async Function
const me = await twitter.whoami()
console.log(me)
Returns an object with your id, name, and username.
{
id: '158143493602009628672',
name: 'Your Name',
username: 'yourusername'
}
Get the details of a single user. Pass the Twitter username as an argument.
//Async Function
const user = await twitter.getUser('twitter')
console.log(user)
Returns an object with the users id, name, and username.
{ id: '783214', name: 'Twitter', username: 'Twitter' }
You can get up to 100 users who replied to a tweet. Pass the conversation id (same as post id) as an argument along with a number between 10-100. If you do not pass an amount it will default to 10.
//Async Function
const allRepliedUsers = await twitter.getAllRepliedUsers('1580661436132757506', 10)
console.log(allRepliedUsers)
Returns an array of up to 100 user objects who replied to the tweet. Along with the original tweet details.
users: [
{
id: '121497883484980166656',
name: 'John Smith',
username: 'thesmithman'
},
{
id: '158071034563650621440',
name: 'Kim B',
username: 'bkim9033'
},
{
id: '158168275334791299584',
name: 'Alpha G ',
username: 'g_aalfa_1'
},
// More users
tweets: [
{
text: 'a hit Tweet. 🤝🏽',
author_id: '783214',
id: '158249263045184706048',
edit_history_tweet_ids: [Array]
},
]
You can follow a user by passing the user id as an argument.
//Async Function
const follow = await twitter.follow('783214')
console.log(follow)
Returns a boolean following object with the value of true or false, along with pending status.
{ following: true, pending_follow: false }
You can also unfollow a user by passing the users id as an argument.
//Async Function
const unfollowed = await twitter.unfollow('783214')
console.log(unfollowed)
Returns a boolean following object with the value of false.
{ following: false }
You can get the followers from a user by providing the user id and the amount of users you want to return as an argument.
//Async Function
const followers = await twitter.getFollowers('783214', 100)
console.log(followers)
Returns an array with user objects and total result count.
{
data: [
{
id: '158260446354554138113',
name: 'Tina',
username: 'tin452'
,
{
id: '1582604434533938063360',
name: 'Melese',
username: 'Melese85'
},
{ id: '158234529484546396160',
name: 'James',
username: 'james5118'
}
//More usernames
],
meta: { result_count: 100, next_token: 'MISPFPRRGFTCV1GZZZ' }
}
You can get everyone a user is following by passing the user id and the amount of users as an argument.
//Async Function
const following = await twitter.getFollowing('783214', 5)
console.log(following)
Returns an array with user objects and total result count.
{
data: [
{
id: '158260446354554138113',
name: 'Bossman',
username: 'boss_man-4000'
,
{
id: '1582604434533938063360',
name: 'Michael Fin',
username: 'fin-mich3456'
},
{ id: '158234529484546396160',
name: 'ChrisTy',
username: 'christy4you'
}
//More usernames
],
meta: { result_count: 5, next_token: 'MISPFPRRGFTCV1GZZZ' }
}
You can send a Direct Message to a user by passing the user id and the message you want to send as an argument.
//Async
const sendDm = await twitter.dm('783214', 'Twitter API is the best!')
console.log(sendDm)
Returns an object with the Direct Message details.
{
type: 'message_create',
id: '158261136734898521605',
created_timestamp: '1666158928261',
message_create: {
target: { recipient_id: '783214' },
sender_id: '15826342311348438521605',
message_data: { text: 'Twitter API is the best!', entities: [Object] }
}
}
You can make a tweet by passing a message in as an argument.
//Async Function
const makeTweet = await twitter.tweet('You are the number one dev in the world!')
console.log(makeTweet)
Returns a large object with the status of the created tweet.
{
created_at: 'Sat Oct 22 19:22:30 +0000 2022',
id: 1583901622342344305700,
id_str: '1583901627605405696',
full_text: 'You are the number one dev in the world!',
truncated: false,
display_text_range: [ 0, 38 ],
entities: { hashtags: [], symbols: [], user_mentions: [], urls: [] },
// Alot more information
Get the details of a given tweet.
//Async Function
const tweet = await twitter.getTweet('1580661436132757506')
console.log(tweet)
Returns tweet object.
{
created_at: 'Thu Oct 13 20:47:08 +0000 2022',
id: 158066143634534534534757500,
id_str: '1580661543543534436132757506',
full_text: 'a hit Tweet 🤝🏽 https://t.co/VGrsylXB8D https://t.co/2C7cah4KzW',
truncated: false,
display_text_range: [ 0, 35 ],
entities: {
hashtags: [],
symbols: [],
user_mentions: [],
urls: [ [Object] ],
media: [ [Object] ]
},
extended_entities: { media: [ [Object] ] }
You can reply to a tweet by passing a message and the tweet id in as an argument.
//Async Function
const replyTweet = await twitter.reply("Let's work together!", '1580661436132757506')
console.log(replyTweet)
Returns a large object with the tweet reply status.
{
created_at: 'Sat Oct 22 19:30:55 +0000 2022',
id: 15839037345344486412000,
id_str: '158395435436186412032',
full_text: "@twitter Let's work together!",
truncated: false,
display_text_range: [ 13, 33 ],
entities: { hashtags: [], symbols: [], user_mentions: [ [Object] ], urls: [] },
// Alot more information
You can like a tweet by passing it's id as an argument. Tweet ids are located at the end of the twitter.com link. (Example: https://twitter.com/Twitter/status/1580661436132757506)
//Async Function
const liked = await twitter.like('1580661436132757506')
console.log(liked)
Returns a boolean liked object with the value of true.
{ liked: true }
You can unlike a tweet by passing it's id as an argument. Tweet ids are located at the end of the twitter.com link. (Example: https://twitter.com/Twitter/status/1580661436132757506)
//Async Function
const unliked = await twitter.unlike('1580661436132757506')
console.log(unliked)
Returns a boolean liked object with the value of false.
{ liked: false }
You can delete a tweet that belongs to you by passing the tweet id as an argument.
//Async Function
const deleteTweet = await twitter.delete('1580661436132757506')
console.log(deleteTweet)
Returns a large object with the deleted tweet's status.
{
created_at: 'Mon Oct 17 08:23:23 +0000 2022',
id: 158192381666432424323400,
id_str: '15819238123423939968',
full_text: "@twitter Let's work together!",
truncated: false,
display_text_range: [ 0, 24 ],
entities: { hashtags: [], symbols: [], user_mentions: [], urls: [] },
// Alot more information
You can make a video or image tweet by passing the message and path to the file as an argument.
//Async Function
const tweetImage = await twitter.tweetMedia('Check out my new image! 👀', '/home/images/your_image.png')
console.log(tweetImage)
Returns a large object with the media tweet details along with the media link.
{
created_at: 'Sun Oct 23 01:53:52 +0000 2022',
id: 158345434121582166000,
id_str: '1584543521582166019',
full_text: 'Check out my new image! 👀 https://t.co/Oj0sMb5gdf45r',
truncated: false,
display_text_range: [ 0, 4 ],
entities: {
hashtags: [],
symbols: [],
user_mentions: [],
urls: [],
media: [ [Object] ]
},
extended_entities: { media: [ [Object] ] },
// Alot more information
You can make a Twitter poll by simply passing a poll object containing a question, options (array), and days.
const twitterPoll = await twitter.poll({
question: 'Do you like Twitter V2 Simple? 🤔',
options: ['Yes', 'Kinda', 'No'],
days: 7 //Between 1-7 days
})
console.log(twitterPoll)
Returns a small object with the poll text and id.
{
data: {
id: '15840382454354354354203265',
text: 'Do you like Twitter V2 Simple? 🤔'
}
}