Skip to content

Instantly share code, notes, and snippets.

@tajuszk
Last active July 26, 2020 15:32
Show Gist options
  • Save tajuszk/7ef8fef5c26b18d11470267baaea2755 to your computer and use it in GitHub Desktop.
Save tajuszk/7ef8fef5c26b18d11470267baaea2755 to your computer and use it in GitHub Desktop.
// アカウント分の認証は行っておく
var accounts = ['account1', 'account2','account3', 'account4','account5', 'account6','account7', 'account8','account9', 'account10',]
// フォローする
function follow () {
// 今回APIを実行する人を取得
var titleRow = 1; // 『アカウントID』とか書いている部分の行数
var startRow = 1 + titleRow; // 1行目は『アカウントID』とか書いているので2行目から
var startCol = 1;
var endRow = sheetData.getLastRow() - titleRow; // 最後の行まで
var endCol = sheetData.getLastColumn(); // 最後のアカウントまで
// 投稿を一括で取得する
var cells = sheetData.getRange(startRow, startCol, endRow, endCol).getValues();
var accountNo = 0
var followTarget = null
var isDecided = false
// 今回フォローする人を取得
for (var i in cells) {
// 送信者が確定したら終了
if (isDecided) {
break
}
// 一行ずつチェックしていく
followTarget = cells[i][0]
// 誰が次にフォロー処理を行うか
accountNo = 0
for (var j in cells[i]) {
// チェックボックスにチェックが付いてなければ決定
if (cells[i][j] === false) {
// isDecided を true にして処理を終わらせる
isDecided = true
// スプレッドシートにチェックを付ける
var updateCell = sheetData.getRange(startRow + Number(i), startCol + Number(j), 1, 1);
updateCell.setValue(true);
break;
}
// チェックボックスにチェックが付いていれば次の人に回す
if (cells[i][j] === true) {
accountNo++;
}
}
}
// 該当の認証済みアカウントを取り出して、APIを実行する
var keys = Object.keys(twitterInstances)
var instance = twitterInstances[keys[accountNo]]
var service = instance.getService();
if (service.hasAccess()) {
var response = service.fetch('https://api.twitter.com/1.1/friendships/create.json', {
method: 'post',
payload: { screen_name: followTarget, follow: true }
});
Logger.log("フォローしました")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment