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
Google Developer Expert, Google Cloud Champion
Amit Agarwal is a Google Developer Expert in Google Workspace and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India.
Amit has developed several popular Google add-ons including Mail Merge for Gmail and Document Studio. Read more on Lifehacker and YourStory