Closed7

Google Apps Script(GAS)について調査・まとめ🌟

まさぴょんまさぴょん

X(Twitter) bot の投稿する記事の選択をランダムに変えたい

  • GAS ✖️スプレッドシートで、楽に実現できることに後から気づく。。。🥺
  • Server費用もかからないのが、つよつよすぐる。。。

GAS×スプレッドシートでTwitterに定期自動投稿する方法

「こんな方におすすめの記事です!」とのこと。

  • 過去に投稿したブログ記事を、ランダムに投稿したい
  • 会社のいろんな情報を定期的にツイートして宣伝したい
  • 「今日の格言」とか「英単語」みたいなツイートを自動で行いたい

https://prtn-life.com/blog/twitter-gas-sheet

GASからTwitter API v2でツイートする【Google Apps Script】

https://prtn-life.com/blog/gas-twitter-api

【GAS×Twitter】Webページのスクレイピング結果を自動投稿する

https://prtn-life.com/blog/gas-twitter-scraping#toc2

まさぴょんまさぴょん

Google Apps Script(GAS)で、スプレッドシートを操作するための権限について

  • SpreadSheet(スプレッドシート)」の編集権限(共有)を、Google Apps Script(GAS)を使って設定する方法とは?
  • スプレッドシートに他のユーザーの権限を付与するコマンドは「addEditor」です。
  • SpreadSheetクラスのオブジェクトで実行可能なコマンドです。
  • アクティブなスプレッドシートに対し、「aaaaaaa@gmail.com」ユーザーに編集権限を付与するCodeは、次のような内容になります。
var mySheet = SpreadsheetApp.getActiveSpreadsheet;
mySheet.addEditor("aaaaaaa@gmail.com")

https://auto-worker.com/blog/?p=134

まさぴょんまさぴょん

GASで、スプレッドシートのシートを取得する方法

  1. シート位置(インデックス)から取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[index];
  1. シート名から取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名');
  1. アクティブな(今開いている)シートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

https://agohack.com/gas-how-to-get-sheet/

まさぴょんまさぴょん

GAS の トリガーについて

  • GASのトリガーには、シンプルトリガー(Simple triggers)と2種類ある。
  1. シンプルトリガー(Simple triggers)は、GoogleシートやGoogleスプレッドシートに紐づいたトリガーです。

    • GASで「セルの値が変更されたら、再計算処理を実行する」という処理を書いておけば、スプレッドシートのセルが編集されたらスクリプトが実行されます。
    • 名前のとおり、とても単純で手軽なトリガーです。
    • ただし、いくつか制約がありますので使う際には注意が必要です。
  2. インストーラブルトリガー(Installable Triggers)は、自分でトリガー設定を行うトリガーのことです。

    • 先ほど紹介したシンプルトリガーは、トリガー設定不要で手軽ではありましたが、必ずGoogleドキュメントやスプレッドシートなどと連携している必要がありました。
    • いっぽう、インストーラブルトリガーは、必ずしもドキュメントと連携している必要はありません。

https://prtn-life.com/blog/gas-trigger

まさぴょんまさぴょん

GASでのlog出力について

  • Logger.log()からconsole.log()のどちらかで、ログ出力ができる。

https://tanuhack.com/gas-log/

https://tellingbook.com/gas-difference-console-log-logger-log/

GASを直接実行している際に、変数が出力されない事象が発生

  • Logger.log()からconsole.log()に変えたら変数もログ出力されるようになった。

https://qiita.com/inoue2002/items/ad1003dfc168d1a201ba

https://laboratory.kazuuu.net/what-to-do-if-google-apps-script-logger-log-is-written-but-not-displayed-in-the-log/

https://zenn.dev/nenenemo/articles/db5f4d3930276c

まさぴょんまさぴょん

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🙆‍♂️

https://developers.google.com/apps-script/reference/base/blob?hl=ja

https://qiita.com/kunihiros/items/74cb1209eb3e80d669bb

https://qiita.com/a_eau_/items/01bc14bfc5cb5ef12e64

https://technical.verybestcbp.com/downloadcsv/

このスクラップは4ヶ月前にクローズされました