Skip to content
This repository has been archived by the owner on Jul 7, 2021. It is now read-only.
/ twitterize Public archive

Generate OAuth 1.0a authorization header for Twitter API using native https nodejs module

License

Notifications You must be signed in to change notification settings

MauricioRobayo/twitterize

Repository files navigation

Twitterize 🔑

npm version Build Status codecov CodeFactor

Simple and minimalist wrapper using the native https NodeJS module to send authorized requests to the Twitter API.

No dependencies and super small: install size.

Twitterize

Install

npm install twitterize

Use

Create 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)

Examples

To run the examples clone the repository:

git clone https://github.com/MauricioRobayo/twitterize.git

Install 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:upload

TypeScript

Type definitions are included. A TypeScript example is provided here, you can run it with npm run example:search-ts.

Twittter documentation

License

FOSSA Status

About

Generate OAuth 1.0a authorization header for Twitter API using native https nodejs module

Resources

License

Stars

Watchers

Forks

Packages

No packages published