Simple and minimalist wrapper using the native https NodeJS module to send authorized requests to the Twitter API.
No dependencies and super small: .
npm install twitterizeCreate an app and get your credentials, you will need:
- API KEY
- API SECRET KEY
- ACCESS TOKEN
- ACCESS TOKEN SECRET
Use the documented endpoints and parameters for the twitter API.
For example, to search tweets:
/* eslint-disable no-console */
const twitterize = require('../src')
const twit = twitterize({
  api_key: '<YOUR API KEY>',
  api_secret_key: '<YOUR API SECRET KEY>',
  access_token: '<YOUR ACCESS TOKEN>',
  access_token_secret: '<YOUR SECRET ACCESS TOKEN>',
})
const options = {
  requestMethod: 'GET',
  endpoint: '/search/tweets.json',
  queryParams: { q: 'twitter bot' },
}
twit(options).then(console.log).catch(console.log)To post tweets:
const twitterize = require('../src')
const twit = twitterize({
  api_key: '<YOUR API KEY>',
  api_secret_key: '<YOUR API SECRET KEY>',
  access_token: '<YOUR ACCESS TOKEN>',
  access_token_secret: '<YOUR SECRET ACCESS TOKEN>',
})
const options = {
  requestMethod: 'POST',
  endpoint: '/statuses/update.json',
  bodyParams: { status: 'Hello World!' },
}
twit(options).then(console.log).catch(console.log)To upload an image:
const fs = require('fs')
const path = require('path')
const twitterize = require('../src')
const twit = twitterize({
  api_key: '<YOUR API KEY>',
  api_secret_key: '<YOUR API SECRET KEY>',
  access_token: '<YOUR ACCESS TOKEN>',
  access_token_secret: '<YOUR SECRET ACCESS TOKEN>',
})
const imagePath = path.join(__dirname, './cat.jpg')
const b64content = fs.readFileSync(imagePath, { encoding: 'base64' })
// Image upload
twit({
  requestMethod: 'POST',
  subdomain: 'upload',
  endpoint: '/media/upload.json',
  bodyParams: { media_data: b64content },
})
  .then((data) =>
    // Status update
    twit({
      requestMethod: 'POST',
      endpoint: '/statuses/update.json',
      bodyParams: {
        status: 'Hello World IND SIG!',
        media_ids: JSON.parse(data).media_id_string,
      },
    }),
  )
  .then(console.log)
  .catch(console.log)To run the examples clone the repository:
git clone https://github.com/MauricioRobayo/twitterize.gitInstall dependencies:
cd twitterize
npm install
In the root directory of the repo create a .env file with your credentials (you can get them from your twitter app page):
# .env file
TWITTER_API_KEY="<YOUR API KEY>"
TWITTER_API_SECRET_KEY="<YOUR API SECRET KEY>"
TWITTER_ACCESS_TOKEN="<YOUR ACCESS TOKEN>"
TWITTER_ACCESS_TOKEN_SECRET="<YOUR SECRET ACCESS TOKEN>"Use the provided npm scripts:
npm run example:search
npm run example:post
npm run example:uploadType definitions are included. A TypeScript example is provided here, you can run it with npm run example:search-ts.
