実現したいこと
Google Apps Scriptでスプレッドシートの上から内容を読み込んで、セルの順番に投稿する仕様にしたい
前提
Google Apps Scriptでスプレッドシートから内容を読み込んでSNSへ投稿するbotを作成しているのですが、既存のコードだとランダムに投稿される仕様になっています。
発生している問題・エラーメッセージ
ランダムに投稿することしか出来ない
該当のソースコード
GoogleAppScript
12//認証用インスタンスの生成 3var twitter = TwitterWebService.getInstance( 4 'APIキー',//API Key 5 'シークレットキー'//API secret key 6); 7 8//アプリを連携認証する 9function authorize() { 10 twitter.authorize(); 11} 12 13//認証を解除する 14function reset() { 15 twitter.reset(); 16} 17 18//認証後のコールバック 19function authCallback(request) { 20 return twitter.authCallback(request); 21} 22 23// ツイートを投稿 24function postTweet() { 25 26 //シート各種データ取得用 27 var ss = SpreadsheetApp.getActiveSpreadsheet(); 28 //シート1を参照 29 var sheet = ss.getSheetByName('シート1'); 30 //データのあるセルの内、一番下にあるセルの行番号を取得 31 var rows = sheet.getLastRow(); 32 //データのあるセルの内、一番下にあるセルの列番号を取得 33 var columns = sheet.getLastColumn(); 34 console.log(rows,columns); 35 36 //乱数生成 37 var suuji = Math.floor(Math.random()*(rows-1)); 38 //参照するデータの個数を判別 39 //suujiの値は0から一番下にあるセルの行番号の数値-1 40 //ここでは一行目の投稿内容のセルを参照したくないので-1している 41 Logger.log(suuji); 42 43 //ここでは一行目の投稿内容のセルを参照したくないので+2している 44 var postMessageCell = sheet.getRange(suuji+2, 1).getValue(); 45 //一応、文字列化 46 var moji = String(postMessageCell); 47 48 var service = twitter.getService(); 49 var endPointUrl = 'https://api.twitter.com/2/tweets'; 50 var message = { 51 text : moji, 52 } 53 54 var options = { 55 "method": 'post', 56 "muteHttpExceptions" : true, 57 'contentType': 'application/json', 58 //messageをJSONの形式に変換。投稿に必須 59 'payload': JSON.stringify(message), 60 } 61 var response = JSON.parse(service.fetch(endPointUrl, options)); 62 63 //リクエスト結果 64 console.log(response) 65} 66
0 コメント