

グーグルスプレッドシートでTwitterのアプリを開発しているのですが、TwitterのOAuth認証の部分でアクセストークンを取得の部分でtokenがとれなく困っています。

JavaScriptでいうlocalStorage機能みたいなものはないでしょうか？

コードはこちらです

[code]

    function getToken(){
      var acount
      var oath_url = "https://api.twitter.com/oauth/authorize?force_login=true&screen_name="+acount;
      var access_url = "https://api.twitter.com/oauth/access_token";
      var request_url = "https://api.twitter.com/oauth/request_token";
    
       var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
       var a = oAuthConfig.setAccessTokenUrl(oath_url);
       var r =oAuthConfig.setRequestTokenUrl(access_url);
       var oa =oAuthConfig.setAuthorizationUrl(request_url);
       var consumer = oAuthConfig.setConsumerKey(ScriptProperties.getProperty("twitterConsumerKey"));
       var secret = oAuthConfig.setConsumerSecret(ScriptProperties.getProperty("twitterConsumerSecret"));
    
[/code]


CC BY-SA 3.0
2015-02-25T10:10:14.847
7075
2015-02-25T14:19:06.510
2015-02-25T11:03:33.740
8277
8277
question
javascript google-spreadsheet
TwitterのOAuth認証でアクセストークンが取得できない


  * 指定する URL の組み合わせが間違っています
  * `oAuthConfig.set**` は設定するだけのメソッドなので、値を返しません
  * 基本的にアクセストークンは GoogleApps で管理されるので、アクセストークンの取得や保存は自分で書きません（初回は自動的にアクセス許可を求められますし、それ以降は GoogleApps で保存されたものが自動的に使われます）

という点を元に修正するとこんな感じかと。

[code]

    function test() {
      // TwitterのOAuth設定
      var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
      oAuthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
      oAuthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
      oAuthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
    
      // ConsumerKey/Secretは「スクリプトのプロパティ」から取得
      // ScriptPropertiesは非推奨になったので、PropertiesServiceを使う
      var props = PropertiesService.getScriptProperties();
      oAuthConfig.setConsumerKey(props.getProperty("twitterConsumerKey"));
      oAuthConfig.setConsumerSecret(props.getProperty("twitterConsumerSecret"));
    
      var options = {
        'oAuthServiceName': 'twitter', // addOAuthServiceに指定した値
        'oAuthUseToken': 'always'
      };
    
      var url = "https://api.twitter.com/1.1/account/verify_credentials.json";
      var response = UrlFetchApp.fetch(url, options);
      Logger.log(response.getContentText());
    }
    
[/code]

Twitter にアプリを登録する際、CallbackURL を `https://script.google.com/macros`
とするのを忘れずに（私はここではまりました）。

## 参考サイト

  * [Tutorial: Twitter Approval Manager - Apps Script — Google Developers](https://developers.google.com/apps-script/articles/twitter_tutorial)
  * [Twitter検索の結果をGoogle Driveのスプレッドシートに出力する - hika69 blog](http://blog.hika69.com/blog/2014/01/28/google-apps-script/)


CC BY-SA 3.0
2015-02-25T14:19:06.510
7089
2015-02-25T14:19:06.510
8000
7075
answer