Closed7
Google Apps Script(GAS)について調査・まとめ🌟
X(Twitter) bot の投稿する記事の選択をランダムに変えたい
- GAS ✖️スプレッドシートで、楽に実現できることに後から気づく。。。🥺
- Server費用もかからないのが、つよつよすぐる。。。
GAS×スプレッドシートでTwitterに定期自動投稿する方法
「こんな方におすすめの記事です!」とのこと。
- 過去に投稿したブログ記事を、ランダムに投稿したい
- 会社のいろんな情報を定期的にツイートして宣伝したい
- 「今日の格言」とか「英単語」みたいなツイートを自動で行いたい
GASからTwitter API v2でツイートする【Google Apps Script】
【GAS×Twitter】Webページのスクレイピング結果を自動投稿する
Google Apps Script(GAS)で、スプレッドシートを操作するための権限について
- SpreadSheet(スプレッドシート)」の編集権限(共有)を、Google Apps Script(GAS)を使って設定する方法とは?
- スプレッドシートに他のユーザーの権限を付与するコマンドは「addEditor」です。
- SpreadSheetクラスのオブジェクトで実行可能なコマンドです。
- アクティブなスプレッドシートに対し、「aaaaaaa@gmail.com」ユーザーに編集権限を付与するCodeは、次のような内容になります。
var mySheet = SpreadsheetApp.getActiveSpreadsheet;
mySheet.addEditor("aaaaaaa@gmail.com")
GASで、スプレッドシートのシートを取得する方法
- シート位置(インデックス)から取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[index];
- シート名から取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名');
- アクティブな(今開いている)シートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
GAS の トリガーについて
- GASのトリガーには、シンプルトリガー(Simple triggers)と2種類ある。
-
シンプルトリガー(Simple triggers)は、GoogleシートやGoogleスプレッドシートに紐づいたトリガーです。
- GASで「セルの値が変更されたら、再計算処理を実行する」という処理を書いておけば、スプレッドシートのセルが編集されたらスクリプトが実行されます。
- 名前のとおり、とても単純で手軽なトリガーです。
- ただし、いくつか制約がありますので使う際には注意が必要です。
-
インストーラブルトリガー(Installable Triggers)は、自分でトリガー設定を行うトリガーのことです。
- 先ほど紹介したシンプルトリガーは、トリガー設定不要で手軽ではありましたが、必ずGoogleドキュメントやスプレッドシートなどと連携している必要がありました。
- いっぽう、インストーラブルトリガーは、必ずしもドキュメントと連携している必要はありません。
GASでの Fetch処理
const response = UrlFetchApp.fetch('https://...', {
method: ...,
headers: ...,
payload: ...,
});
GASでのlog出力について
-
Logger.log()
からconsole.log()
のどちらかで、ログ出力ができる。
GASを直接実行している際に、変数が出力されない事象が発生
-
Logger.log()
からconsole.log()
に変えたら変数もログ出力されるようになった。
GASでCSVをDownloadしたい(GASでは、Blobをどう扱うのか?を調査)
GAS での Blobの取り扱い
- GASで、
new Blob()
を実行したら、エラーになったので調査を実施する。 - JavaScriptのBlobと、GASのBlobは、使い方がぜんぜん違うので要注意!
- GASのBlobで、CSVを作成するには、次のような感じで実行する。
function createBlob(csv) {
const fileName = 'テスト.csv'
const contentType = 'text/csv';
const charset = 'utf-8';
const blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset);
return blob;
}
GASでのDownloadなどについて
- Googleスプレッドシートはサーバー上に存在するため、localにDownloadしたい時は、工夫が必要。
- 今回は、Google Driveに保存して、それを手動でDownloadするで、OK🙆♂️
このスクラップは2024/01/15にクローズされました