質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

191閲覧

Google App Scriptでスプレッドシートから登録しているワードを自動で一定時間おきに呟くbotで、セリフ登録順の投稿にしたい。

sunagimokuu

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2024/05/18 13:47

実現したいこと

Google Apps Scriptでスプレッドシートの上から内容を読み込んで、セルの順番に投稿する仕様にしたい

前提

Google Apps Scriptでスプレッドシートから内容を読み込んでSNSへ投稿するbotを作成しているのですが、既存のコードだとランダムに投稿される仕様になっています。

発生している問題・エラーメッセージ

ランダムに投稿することしか出来ない

該当のソースコード

GoogleAppScript

1 2//認証用インスタンスの生成 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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2024/05/18 22:16 編集

ランダムで求めているsuujiを何かに覚えるようにして+1していけばいいのではないですか? 値を覚えるのはプロパティサービスを使えば可能かと思います。
guest

回答1

0

YAmaGNZ様からのコメントで手法が示されていますが、
具体的なコードを知りたいのでしょうか。

js

1// ツイートを投稿 2function postTweet() { 3 // どこまで通知したのかを復元(次の行を追加) 4 var suuji = PropertiesService.getScriptProperties().getProperty('lastNotified'); 56(中略) 78 // (次の行以降を削除またはコメントアウト) 9 // //乱数生成 10 // var suuji = Math.floor(Math.random()*(rows-1)); 11 // //参照するデータの個数を判別 12 // //suujiの値は0から一番下にあるセルの行番号の数値-1 13 // //ここでは一行目の投稿内容のセルを参照したくないので-1している 14 // Logger.log(suuji); 15 16 // //ここでは一行目の投稿内容のセルを参照したくないので+2している 17 // var postMessageCell = sheet.getRange(suuji+2, 1).getValue(); 18 // //一応、文字列化 19 // var moji = String(postMessageCell); 20 // (削除はここまで、代わりに次の6行を追加) 21 if (suuji) { 22 suuji++; // 前回の次の行 23 } else { 24 suuji = 2; // 初めは2行目 25 } 26 var moji = sheet.getRange(suuji, 1).getDisplayValue(); // suujiの行のセルの値を文字列として取得 2728(中略) 2930 //リクエスト結果 31 console.log(response) 32 33 // どこまで通知したのかを保存(次の行を追加) 34 PropertiesService.getScriptProperties().setProperty('lastNotified', suuji); 35}

投稿2024/05/20 06:19

codemaker

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問