twitter-v1-oauth
TypeScript icon, indicating that this package has built-in type declarations

1.0.15 • Public • Published

Twitter OAuth 1.0a 🔑

npm version Build and Test codecov CodeFactor

Simple and minimalist module to generate oAuth1.0a authorization header for Twitter API v1.1 and V2.

import dotenv from "dotenv";
dotenv.config();

import axios from "axios";
import oAuth1a from "twitter-v1-oauth";

const oAuthOptions = {
  api_key: process.env.TWITTER_API_KEY || "",
  api_secret_key: process.env.TWITTER_API_SECRET_KEY || "",
  access_token: process.env.TWITTER_ACCESS_TOKEN || "",
  access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET || "",
};
const url = "https://api.twitter.com/1.1/search/tweets.json";
const method = "GET";
const params = { q: "twitter bot" };

const authorization = oAuth1a({ method, url, params }, oAuthOptions);

axios
  .get(url, {
    params,
    headers: {
      authorization,
    },
  })
  .then(({ data }) => console.log(data))
  .catch((err) => {
    if (err.response) {
      return console.log(err.response.data.errors);
    }
    console.log(err);
  });

No dependencies and super small: install size.

twitter-v1-oauth

Install

npm install twitter-v1-oauth

Usage

Create an app and get your credentials, you will need:

  • API KEY
  • API SECRET KEY
  • ACCESS TOKEN
  • ACCESS TOKEN SECRET

Use your preferred library to send the request using the documented endpoints and parameters for the twitter v1 API.

Twitter API v1.1 vs V2

When making a post request to Twitter API v1.1, the data needs to be encoded and sent as application/x-www-form-urlencoded. The module exports an encode function that can be used to properly encode the body before it is send. Check post-tweet for an example.

Whe making a post request to Twitter API v2, the data doesn't need to be encoded and must be sent as application/json. Check like-v2 for an example.

CommonJS

const authRequest = require("twitter-v1-oauth").default;

ES6 Modules

import oAuthRequest from "twitter-v1-oauth";

TypeScript

Type definitions are included.

Examples

Check the examples directory for ideas on how to use it with axios.

The index.test.ts file should also provide a good idea on its usage.

Twitter documentation

License

MIT

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.15
    230
    • latest

Version History

Package Sidebar

Install

npm i twitter-v1-oauth

Weekly Downloads

231

Version

1.0.15

License

MIT

Unpacked Size

12 kB

Total Files

15

Last publish

Collaborators

  • mauriciorobayo