機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

GAS / Google apps script まとめ

プログラミング

ローカルストレージ使えない

プログラミング

ローカルストレージは使えないみたいですね。JavaScriptとは違うってことですね。

正規表現検索はできない

プログラミング
// こういうことはできない
var myThreads = GmailApp.search( /subject:(ke.pa)/, 0, 3);

ちなみに取得したオブジェクトに対しての正規表現検索/置換はJS同様可能なので安心して欲しい。.match(//)[0]みたいにして取得できる。

replできない

プログラミング

repl(対話型実行)はできないみたい。
pryみたいな。

ログと確認

プログラミング
Logger.log("hoge")

Ctrl + Enter

式展開はできない

プログラミング
var strTerms = "Google" ;  // => ok

var strTerms = `Google` ; // => No // 式展開可能な``は使用できない

オブジェクトの中身をみる

プログラミング
Logger.log(JSON.stringify(obj))

ユーザーのメールアドレスを取得

プログラミング
Session.getActiveUser().getEmail() // e.g. yuis.ubuntu@gmail.com

特定のセルを削除

プログラミング
logsheet.getRange("a1").clearContent();

シートの全セルを削除

プログラミング
logsheet.clear() ;

// 蛇足: Logger.log(logsheet.getRange("*")) ; => エラー

メールを送信

プログラミング

function sendEmail(){ MailApp.sendEmail('yuis.twitter@gmail.com' , 'title' , 'content.' ); }

処理したいspread sheetのIDを取得。

プログラミング
var id = SpreadsheetApp.getActiveSpreadsheet().getId();
var spreadSheet = SpreadsheetApp.openById(id);

指定のスプレッドシートの指定のシートにデータを追記していく

プログラミング
var id = "1YQrRF7BBwL6NAFGXJh???????????";  // 先程取得したスプレッドシートのIDを利用する
var spreadSheet = SpreadsheetApp.openById(id);  

spreadSheet.getSheetByName('log').appendRow( // logシートを予め作っておくこと。
    [new Date(), userEmail, 'helloStandAlone()' , 'ここは配列なので', '自由に追加!']
);

GASでGETリクエストを送る

プログラミング
UrlFetchApp.fetch("https://hoge.com")

ローカルIPアドレスにHTTPリクエストは送れない

プログラミング

Google Apps Script – Google apps script UrlFetchApp.fetchでBad requestエラー(139650)|teratail

GASはサーバーサイドで動いているので、クライアントサイドあるJavaScriptと違い、0.0.0.0のようなローカルIPアドレスにアクセスできません。

GASでPOSTリクエストを送る

プログラミング

line notifyの例

function sendLine(strSubject,strMessage){


  var options =
   {
     "method"  : "post",
     "payload" : "message=" + encodeURIComponent(strSubject) + "\n" + encodeURIComponent(strMessage) ,
     "headers" : {"Authorization" : "Bearer "+ strToken}

   };

   UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}

curl [addr] -X POST -d "key=value"とするところのフォームデータはpayloadに指定します。

また、JavaScript同様、POSTする前にはPOSTデータをエンコードして&などをエスケープしておくことが必要になります。: encodeURIComponent()

GASでできなかったこと 問題点

プログラミング

starでトグルするんじゃなくて、ラベル名称で判別すれば使いかっていいんじゃないかと思ってラベルに手を出してみたのですが、

myMessages[i][j].getThread().addLabel("hoge") ;
var labels = myMessages[i][j].getThread().getLabels() ;

Threadクラスで使えるはずのaddLabel、getLabelsが使用できませんでした…。

そんなメソッドないみたいに言われる。

どうしましょうね…。なので今はstarでやってますが。よく分からンゴ。

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

Google Apps Scriptのスクリプトを定期的に実行する方法
Google apps scriptを使ってGmailが来たらLINEで通知する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu