google apps script + twitter api 【001】タイムラインの取得とツイート

thetree.hatenadiary.jp

上の記事のことやってたときにgoogle apps script 便利かよってなって,twitterapiもやったことなかったがついでに試してみた.

1. google apps script 新規プロジェクト作成
2. google apps script に twitter api 用のライブラリ導入

ライブラリキー:MFE2ytR_vQqYfZ9VodecRE0qO0XQ_ydfb

thetree.hatenadiary.jp

  • twitterはOAuthによる認証が必要.それとかも含まれてる.
2. twitter developersで新規アプリケーション登録
  • コールバックURLはhttps://script.google.com/macros/d/[スクリプトID]/usercallback
  • google apps scriptのツールバーの[ファイル] > [プロジェクトのプロパティ] > [スクリプト ID]
  • 他は重要ではない.
3. 実装&実行
// OAuth1認証用インスタンス
var twitter = TwitterWebService.getInstance(
  '***CONSUMER_KEY***',
  '***CONSUMER_SECRET***'
);

// 認証を行う(必須)
function authorize() {
  twitter.authorize();
}

// 認証をリセット
function reset() {
  twitter.reset();
}

// 認証後のコールバック(必須)
function authCallback(request) {
  return twitter.authCallback(request);
}

// タイムラインを取得
function getUserTimeline() {
  var service  = twitter.getService();
  var response = service.fetch('https://api.twitter.com/1.1/statuses/user_timeline.json');
  Logger.log(JSON.parse(response));
}

// ツイートを投稿
function postUpdateStatus() {
  var service  = twitter.getService();
  var response = service.fetch('https://api.twitter.com/1.1/statuses/update.json', {
    method: 'post',
    payload: { status: '***MESSAGE***' }
  });
  Logger.log(JSON.parse(response));
}
  1. atuthorize関数を実行.ログに記載されるURLへ行って認証.
  2. 投稿なりタイムライン取得なり!
4.できた!

いやぁgoogle apps script便利.サーバいらんし.

bot作るのもスプレッドシートと連携してやれば簡単そうだな.

参考

[GAS]Google Apps Scriptでツイートを投稿する - 技術のメモ帳

Slack BotをGASでいい感じで書くためのライブラリを作った - Qiita

とてもわかりやすかったです.感謝.