Top / Google Apps Script / TIPS集
SpreadSheet?を走査して、データを取得する †こんなデータを用意しました。このSpreadSheet?に紐付いたエディタで定義した関数は以下の通り: function getAllRecords(){ var mySheet = SpreadsheetApp.getActiveSheet(); // アクティブなシート // var mySheet = SpreadsheetApp.getActive().getSheetByName('シート2'); // シート名指定 var arrData = mySheet.getDataRange().getValues(); for(var i=0; i< arrData.length; i++){ Logger.log(arrData[i]); } } こんな感じでセルのデータにアクセスができます。実行しようとすると、OAuth2の認可画面が出ますが、そのシートへのデータアクセスを許可すれば、下記の実行結果が得られます。 [17-03-25 16:31:09:521 JST] [NO, 住所, 氏名, 年齢] [17-03-25 16:31:09:522 JST] [1.0, 東京, 名前1, 20.0] [17-03-25 16:31:09:522 JST] [2.0, 東京, 名前2, 21.0] [17-03-25 16:31:09:523 JST] [3.0, 東京, 名前3, 22.0] [17-03-25 16:31:09:524 JST] [4.0, 東京, 名前4, 23.0] [17-03-25 16:31:09:524 JST] [5.0, 東京, 名前5, 24.0] [17-03-25 16:31:09:525 JST] [6.0, 東京, 名前6, 25.0] [17-03-25 16:31:09:525 JST] [7.0, 東京, 名前7, 26.0] [17-03-25 16:31:09:526 JST] [8.0, 東京, 名前8, 27.0] [17-03-25 16:31:09:526 JST] [9.0, 東京, 名前9, 28.0] [17-03-25 16:31:09:527 JST] [10.0, 東京, 名前10, 29.0] [17-03-25 16:31:09:527 JST] [11.0, 東京, 名前11, 30.0] [17-03-25 16:31:09:527 JST] [12.0, 東京, 名前12, 31.0] [17-03-25 16:31:09:528 JST] [13.0, 東京, 名前13, 32.0]
SpreadSheet?に入力された日付の取扱い。 †for(var i=0; i< arrData.length; i++){ var date = new Date(arrData[i][4]); // Logger.log(date); Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss')); } ↑フォーマットされた文字列を返す ついでに、つぎの日とかの取得方法。 Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss')); date.setDate(date.getDate() + 1); ←日付+1 Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss')); SpreadSheet?へのレコード追加。 †var mySheet = SpreadsheetApp.getActiveSheet(); // アクティブなシート var record = [ 'data1', 'data2', 'data3', 'data4', ]; mySheet.appendRow(record); このように列ごとのデータを配列で渡せばOK。 doPost(e)のパラメタへのアクセス †例: e.parameter.param1 で、 curl -X POST https://script.google.com/[WEBアプリURL] --data-urlencode 'param1=value1' で言うところの 'value1' が取得できる。 以下、整理中。 †SlackのOutgoing WebHooks?を使って、処理を起動する 処理結果を Slackへ通知する これらを使って、SlackのBotをつくる RESTを叩いてデータをとりにいく Gmail送信する 環境変数を設定する Slackのライブラリで チャンネルIDを指定 //slackApp インスタンスの取得 var slackApp = SlackApp.create(token); // var channelId = e.parameter.channel_id; ←SlackからのPOSTデータから取得 var channelId = slackApp.channelsList().channels[0].id; ← #generalを指定 チャンネルのIDを確認 var cList = slackApp.channelsList().channels; for(var i=0;i<cList.length ; i++){ message += "[ "+cList[i].id +" ]"; message += "[ "+cList[i].name +" ]"; } データを返す var result = {なんかObject}; return ContentService.createTextOutput(JSON.stringify(result)) .setMimeType(ContentService.MimeType.JSON); これで、JSON文字列をContentType? = JSONで返却することができそうです。 ただしGASはセキュリティ上(?)コンテンツを返すのではなく302を返して、そこにリダイレクトすることで、上記JSONを取得するようです。 関連リンク †この記事は Top / Google Apps Script / TIPS集
現在のアクセス:2286 |