Google Apps Script : gmail, spreadsheet & Chatter

Chatterの投稿を集めてgoogleのspreadsheetに集計する。

、といってもChatterは無料ユーザーなのでChatter APIの利用ができないため、Chatterが翌日にメール送信する前日の投稿まとめをgmailから抜き出してリスト化すると言った、ベタなやり方です。

function getMail(){
var ss = SpreadsheetApp.openById(SpreadsheetApp.getActiveSpreadsheet().getId());
var mySheet = ss.getSheetByName(“Sheet1”);
var thds = GmailApp.getInboxThreads(1,30);
var today = new Date();
var row = 2;
for(var n in thds){
var thd = thds[n];
var msgs = thd.getMessages();
for(m in msgs){
var msg = msgs[m];
var from = msg.getFrom();
var to = msg.getTo();
var date = msg.getDate();
var subject = msg.getSubject();
var body = msg.getBody();

if(subject.indexOf(“[更新情報]”)!=-1 && date.getDay() == today.getDay()){ //今日だけ抽出
//if(subject.indexOf(“[更新情報]”)!=-1){
var sepBody = body.split(“<tr>”);
var messageCount = sepBody.length; //分割配列数を取得
mySheet.insertRowsBefore(2, messageCount);//メッセージ数分の行を先頭に挿入
mySheet.getRange(row,1).setValue(date);

for(var i = 1 ;i < messageCount ; i++){
var result = sepBody[i].replace(/<(“[^”]*”|'[^’]*’|[^'”>])*>|[\n\r]/g,”);//タグ削除
result = result.replace(/コメント/g,”);
result = result.replace(/\D曜日,/g,’ ’);
result = result.replace(/●/g,” ●”).replace(/■/g,” ■”).replace(/・/g,” ・”).replace(/\\\\/g,” \\\\”).replace(/※/g,” ※”);
//人名処理
//var name= “/|AAAA|BBBB|CCCC/g”;
var reName = result.match(|AAAA|BBBB|CCCC/g);
mySheet.getRange(row,1).setValue(reName);
//result = result.replace(name,”);
result = result.replace(|AAAA|BBBB|CCCC/g,”);
result = result.replace(/ さんがいいね! と言っています。/,’いいね! と言っています。’);

//時間処理
var reDaate = result.match(/\d{4}\/\d{2}\/\d{2}\s\d{1,2}:\d{1,2}/g);
result = result.replace(/\d{4}\/\d{2}\/\d{2}\s\d{1,2}:\d{1,2}/g,”);
mySheet.getRange(row,2).setValue(reDaate);

var cutPoint = result.indexOf(‘このメールは’,0);
if(cutPoint != -1){
result = result.substr(0,cutPoint);
}

mySheet.getRange(row,3).setValue(result);
row++;
}

row++;
}
Utilities.sleep(1000) ;
}
}
}

おすすめ