Skip to content

Instantly share code, notes, and snippets.

@M-Igashi
Forked from supersupermomonga/TwitterWebService.gs
Created December 21, 2016 22:25
Show Gist options
  • Select an option

  • Save M-Igashi/750ab08718687d11bff6322b8d6f5d90 to your computer and use it in GitHub Desktop.

Select an option

Save M-Igashi/750ab08718687d11bff6322b8d6f5d90 to your computer and use it in GitHub Desktop.

Revisions

  1. Yoshiyuki Hirano created this gist Oct 12, 2015.
    47 changes: 47 additions & 0 deletions TwitterWebService.gs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,47 @@
    'use strict';

    function getInstance(consumer_key, consumer_secret) {
    return new TwitterWebService_(consumer_key, consumer_secret);
    }

    var TwitterWebService_ = function (consumer_key, consumer_secret) {
    this.consumer_key = consumer_key;
    this.consumer_secret = consumer_secret;
    }

    TwitterWebService_.prototype.getService = function() {
    return OAuth1.createService('Twitter')
    .setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
    .setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
    .setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
    .setConsumerKey(this.consumer_key)
    .setConsumerSecret(this.consumer_secret)
    .setCallbackFunction('authCallback')
    .setPropertyStore(PropertiesService.getUserProperties())
    }

    TwitterWebService_.prototype.authorize = function() {
    var service = this.getService();
    if (service.hasAccess()) {
    Logger.log('Already authorized');
    } else {
    var authorizationUrl = service.authorize();
    Logger.log('Open the following URL and re-run the script: %s', authorizationUrl);
    }
    }

    TwitterWebService_.prototype.reset = function() {
    var service = this.getService();
    service.reset();
    }

    TwitterWebService_.prototype.authCallback = function(request) {
    var service = this.getService();
    var isAuthorized = service.handleCallback(request);
    var mimeType = ContentService.MimeType.TEXT;
    if (isAuthorized) {
    return ContentService.createTextOutput('Success').setMimeType(mimeType);
    } else {
    return ContentService.createTextOutput('Denied').setMimeType(mimeType);
    }
    }