Help us understand the problem. What is going on with this article?

[GAS] Google Apps Script でTwitter複数アカウントを使い分ける

More than 3 years have passed since last update.

概要

こちらの記事([GAS]Google Apps Scriptでツイートを投稿する)で公開されている
Twitterライブラリを使う時、複数アカウントを使い分ける方法について情報共有します。
このライブラリはたいへん便利なのですが、別のスクリプトやプロジェクトを作成しても使用されるアカウントが共通で一つになってしまうという弱点があります。
ちょっと書き加えるだけで、複数のアカウントを使い分けることができるようになります。

実装

※上記の記事を参考にしてGASにライブラリを組み込んである前提です。
TwitterWebService: MFE2ytR_vQqYfZ9VodecRE0qO0XQ_ydfb
OAuth1: 1CXDCY5sqT9ph64fFwSzVtXnbjpSfWdRymafDrtIZ7Z_hwysTY7IIhi7s

コード.gs
'use strict';

// OAuth1認証用インスタンス
var twitter = TwitterWebService.getInstance(
  '***CONSUMER_KEY***',
  '***CONSUMER_SECRET***'
);

//OAuth1ライブラリを導入したうえで、getServiceを上書き
twitter.getService = function() {
  return OAuth1.createService('Twitter2')
    .setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
    .setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
    .setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
    .setConsumerKey(twitter.consumer_key)
    .setConsumerSecret(twitter.consumer_secret)
    .setCallbackFunction('authCallback')
    .setPropertyStore(PropertiesService.getUserProperties())
}



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

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

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

function tweetTest(){
 postUpdateStatus('test'); 
}


重要なのはこの部分です。
return OAuth1.createService('Twitter2')
OAuthライブラリを読むと、ここで引数として与えるサービス名ごとに認証情報を保管するようになっています。この保管は、Googleアカウント単位で行われるため、スクリプトやプロジェクトを変えてもアカウント認証情報が共通になってしまうのです。
TwitterWebService.gsの中でこの引数が'Twitter'として固定文言で与えられているため、その部分だけを上書きしてサービスを初期化すれば、複数のアカウントを利用できるようになります。
なお、実際に使う際にはTwitter_taroTwitter_jiroのように、アカウント名をサービス名に含めてしまうと、管理しやすいのではないかと思います。

koba0124
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした