やりたいこと
- gasからTwitterAPIを叩きたい
- access token, access token secretを持っているのに、それを使わずにoauth認証するような実装をしなきゃいけないのが面倒
- 直接これらを渡して、直接API叩く方法無いのかな?
- あった!
どうやったか
gasのOAuth1ライブラリにsetAccessToken
というメソッドが用意したあったのでそれを使えばOKでした
サンプルとかドキュメントにはこのメソッド出てこないが、ライブラリのソースコード読んでたら見つけました
var getTwitterService = 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("xxx")
.setConsumerSecret("xxx")
.setAccessToken("access token", "access token secret"); // これだよ!!
};
var service = getTwitterService();
var res = service.fetch("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=qiita");
事前にOAuth1ライブラリをgasに導入しておく必要あり → https://github.com/gsuitedevs/apps-script-oauth1#setup