Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Learn more
A simple Node.js app using Express 4 for Twitter DMs and webhooks.
Branch: master
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example_scripts Cleans up update webhook script Oct 6, 2017
messages
public Cleaning up Mar 15, 2017
views JD: revert to default index ejs content Mar 23, 2017
.gitignore Removes twit as npm requirement May 15, 2017
Procfile Adding source Mar 15, 2017
README.md Fixes typo Jun 6, 2018
app.json Updating app name Mar 15, 2017
config.sample.json Adding source Mar 15, 2017
index.js Code for a very basic bot using response metadata Jul 24, 2017
message-processor.js Adds comments and minor fixes Jul 24, 2017
package.json Upgrading ejs to secure version Dec 18, 2017
security.js Cleans up npms and semicolon use Jun 1, 2017
test.js Adding source Mar 15, 2017
twitter.js Code for a very basic bot using response metadata Jul 24, 2017

README.md

Twitter Webhook Boilerplate Node

Starter web app for consuming events via Account Activity API (beta).

Note: This application is only compatible with the DM-only beta version of the Account Activity API. The DM-only beta will end on August 16, 2018 and this app will no longer be fully funcional. Please see this project for updated example code to get started with the Account Activity API.

Dependencies

Create and configure a Twitter app

  1. Create a Twitter app on apps.twitter.com

  2. On the Permissions tab > Access section > enable Read, Write and Access direct messages.

  3. On the Keys and Access Tokens tab > Your Access Token section > click Create my access token button.

  4. On the Keys and Access Tokens tab, take note of the consumer key, consumer secret, access token and access token secret.

Setup & run the Node.js web app

  1. Clone this repository:

    git clone https://github.com/twitterdev/twitter-webhook-boilerplate-node.git
    
  2. Install Node.js dependencies:

    npm install
    
  3. Create a new config.json file based on config.sample.json and fill in your Twitter keys and tokens.

  4. Run locally:

    node index
    
  5. Deploy app. To deploy to Heroku see "Deploy to Heroku" instructions below.

    Take note of your webhook URL. For example:

    https://your.app.domain/webhooks/twitter
    

Configure webhook to receive events via the API

  1. Create webhook config. Update WEBHOOK_URL in source code.

    node example_scripts/webhook_management/create-webhook-config.js 
    

    Take note of returned webhook_id.

  2. Add user subscription. Update WEBHOOK_ID in source code.

    node example_scripts/webhook_management/add-subscription.js 
    

    Subscription will be created for user the context provided by the access tokens.

  3. Test configuration by sending a DM to or from the subscribed account. You should receive a message event on your deployed webhook app.

Example Scripts

See the example scripts in the example_scripts directory to:

  • Send Direct Messages.
  • Manage webhook configs and subscriptions.
  • Setup Welcome Message deeplinks and defaults.

Deploy to Heroku (optional)

  1. Init Heroku app.

    heroku create
    
  2. Run locally.

    heroku local
    
  3. Configure environment variables. Set up an environment variable for every property on config.json. See Heroku documentation on Configuration and Config Vars.

  4. Deploy to Heroku.

    git push heroku master
    

Note: The free tier of Heroku will put your app to sleep after 30 minutes. On cold start, you app will have very high latency which may result in a CRC failure that deactivates your webhook. To trigger a CRC request and re-validate, run the following script with your WEBHOOK_ID:

node example_scripts/webhook_management/trigger-crc-request.js

Documentation

You can’t perform that action at this time.