実現したいこと
チャットワークにタスクを自動で追加したい
前提
初心者です。
ネットの記事を見ながらGASでチャットワークに自動でタスクを追加するシステムを作っています。
システムは動いたのですが、文字化けが発生てしまいました。
発生している問題・エラーメッセージ
[info][title]タスクを追加しました。[/title][task aid 4********0 st=open lt=1*******7 ltype=date]
*の部分は実際は数字です↓↓
チャットワーク表示画面
https://gyazo.com/1f22ba47a9c822417fbff95156cdc5ff
該当のソースコード
var ss=SpreadsheetApp.openById(ssId); var s=ss.getSheetByName(sn); var ld=new Date(); //今日の日付オブジェクト var dt=new Date(); //今日の日付オブジェクト var tanto; var limit=0; var message; for(i=3;i<=maxRow;i++){ var rid = s.getRange(i, 1).getValue(); var flg=getShoriFlg(s.getRange(i, 3).getValue(),dt); if(rid==''){ break; }else{ if(flg==true){ //実際のAPI処理 //タスクの本文を作成 message='[info][title]'; message+=s.getRange(i, 5).getValue(); message+='[/title]'; message+=s.getRange(i, 6).getValue(); message+='[/info]'; message+='※これは自動に投稿されたタスクです'; //タスクの期限を決定 ld=new Date; ld.setDate(dt.getDate()+s.getRange(i, 4).getValue()); limit=ld.getTime()/1000; limit = limit.toFixed(); //タスクの担当者を取得 tanto=s.getRange(i, 2).getValue(); //タスクの追加処理 addTask(tkn,rid,message,limit,tanto); } } }//next } //***************************************************** //タスク追加処理メソッド //***************************************************** function addTask(token,room_id,body,limit,to_ids){ var params = { headers : {"X-ChatWorkToken" : token}, //APIトークン method : "post", payload : { body : body, //タスク内容 limit : limit, //タスク期限 to_ids : to_ids //アカウントID } };
補足情報(FW/ツールのバージョンなど)
担当者やタイトルはスプレッドシートから引っ張ってきています。
参考にしたサイト
https://neta-blog.work/chatwork_auto2/
2018年の記事なので今と変わっている部分があるかと思いますが、
どこか分からず。
//タスクの本文を作成
message='[info][title]';
message+=s.getRange(i, 5).getValue();
message+='[/title]';
message+=s.getRange(i, 6).getValue();
message+='[/info]';
message+='※これは自動に投稿されたタスクです';
の後に
console.log(message);
などで作成したメッセージの内容を確認していますか?
エディタの実行数のところから実行後しばらくするとログの確認ができます。
ありがとうございます!
こういう風に出るのですが、これとは別でログが出るのでしょうか…
実行ログ
0:42:08 お知らせ 実行開始
0:42:09 お知らせ 実行完了
何もログに取得できてません。
console.logの行は実行されていないと思われます。
message+='※これは自動に投稿されたタスクです'; の後に console.log(message);
を追記していてログに出ないのはおかしいですね。
投稿はされているのですから、そこの行は実行されていると思うのですが。。。
var flg=getShoriFlg(s.getRange(i, 3).getValue(),dt);
の次の行に
console.log('flg: ' + flg);
を追記して
getShoriFlgの戻り値がtrueかfalseかを確認してみてください。
上とは別な話ですが、
//タスクの期限を決定
ld=new Date;
は、
id = new Date();
と括弧が必要だと思います。