Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
// 'use strict';
const consumerKey = 'CONSUMER_KEY'
const consumerSecret = 'CONSUMER_SECRET'
const client = TwitterClient.getInstance(consumerKey, consumerSecret)
/**
* ①Twitterで作ったアプリに登録するための callbackUrl を取得する
* 実行後 『表示』→『ログ』でURLを確認してTwitterアプリに登録
*/
function getCallbackUrl() {
Logger.log('以下のURLをTwitterアプリのCallbackURLに登録');
Logger.log(client.getCallbackUrl());
}
/**
* ②認証を実行する
* 実行後『表示』→『ログ』で表示されたURLに移動
*/
function authorize () {
client.authorize()
}
/**
* ③ 画像つきで投稿する
*/
function postTweetWithMedia () {
// https://docs.google.com/spreadsheets/d/1Xr1G4FTglcE68j7eylcrwJgQtzfN0AB3K7EKZMIFQ8I/edit#gid=945036492
// ↑のシートの形式を元にツイートをランダムで選び画像つき投稿をする
const postData = TwitterClient.pickUpTweetDataRandom();
// === ここから ===
// シートを取得する
const sheetData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
const titleRow = 1; // 『投稿内容』とか書いている部分の行数
const startRow = 1 + titleRow; // 1行目は『投稿内容』とか書いているので2行目から
const startCol = 1;
const endRow = sheetData.getLastRow() - titleRow; // 最後の行まで(2行目から始まっているので-1している)
const endCol = 2; // 『投稿回数』の列までなので2列目まで
const cells = sheetData.getRange(startRow, startCol, endRow, endCol).getValues();
// 取ってきた投稿の行の重みを1減らす
for (let i = 0, il = cells.length; i < il; i++) {
const cell = cells[i];
if (cell[0] == postData.message) {
const weight = cell[1] - 1;
sheetData.getRange(startRow + i, 2,1,1).setValue(weight);
}
}
// === ここまで ===
client.postTweetWithDriveData(postData);
}
/**
* 認証を削除したい時はこれを実行する
*/
function reset () {
client.reset()
}
/**
* authorizeでTwitterでの認証後に実行される処理
* ※手動で実行はしません
*/
function authCallback (request) {
return client.authCallback(request)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment