Search Twitter with Google Apps Script

The Twitter Search Archiver uses the OAuth1 library for Google Apps Script to talk to the Twitter Search API. You need to include the OAuth1 library in your Google Script project, create a Callback URL and then call the authorization URL in a separate browser tab to authorize the Twitter service.

However, if you are only going to make read-only requests to Twitter - like fetching user timelines for Twitter RSS feeds or performing searches - you can do without the library as well. You won’t be able to post tweets or DMs though.

Twitter supports application-only authentication giving apps the ability to issue authenticated requests on behalf of the application itself without authenticating the specific user.

First create a new Twitter app and make a note of the Twitter consumer key and consumer secret. The Callback URL can be left blank since it is not required.

function Twitter() {
  // Encode consumer key and secret
  var tokenUrl = 'https://api.twitter.com/oauth2/token';
  var tokenCredential = Utilities.base64EncodeWebSafe(TWITTER_CONSUMER_KEY + ':' + TWITTER_CONSUMER_SECRET);

  //  Obtain a bearer token with HTTP POST request
  var tokenOptions = {
    headers: {
      Authorization: 'Basic ' + tokenCredential,
      'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
    },
    method: 'post',
    payload: 'grant_type=client_credentials',
  };

  var responseToken = UrlFetchApp.fetch(tokenUrl, tokenOptions);
  var parsedToken = JSON.parse(responseToken);
  var token = parsedToken.access_token;

  // Authenticate Twitter API requests with the bearer token
  var apiUrl = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=labnol';
  var apiOptions = {
    headers: {
      Authorization: 'Bearer ' + token,
    },
    method: 'get',
  };

  var responseApi = UrlFetchApp.fetch(apiUrl, apiOptions);

  var result = '';

  if (responseApi.getResponseCode() == 200) {
    // Parse the JSON encoded Twitter API response
    var tweets = JSON.parse(responseApi.getContentText());

    if (tweets) {
      for (var i = 0; i < tweets.length; i++) {
        var tweet = tweets[i].text;
        var date = new Date(tweets[i].created_at);
        result += '[' + date.toUTCString() + ']' + tweet + ' / ';
      }
    }
  }

  Logger.log(result);
}

Amit Agarwal is a web geek, solo entrepreneur and loves making things on the Internet. Google recently awarded him the Google Developer Expert and Google Cloud Champion title for his work on Google Workspace and Google Apps Script.

Awards & Recognition

Google Developer Expert

Google Developer Expert

Google awarded us the Developer Expert title recogizing our work in Workspace

ProductHunt Golden Kitty

ProductHunt Golden Kitty

Our Gmail tool won the Lifehack of the Year award at ProductHunt Golden Kitty Awards

Microsoft MVP Alumni

Microsoft MVP Alumni

Microsoft awarded us the Most Valuable Professional title for 5 years in a row

Google Cloud Champion

Google Cloud Champion

Google awarded us the Champion Innovator award for technical expertise

Want to stay up to date?
Sign up for our email newsletter.

We will never send any spam emails. Promise 🫶🏻