回答募集中:追加で実現したいこと
・タスク投稿日を取得したい(メッセージ取得には"send_time"があるが、タスク取得にはない?) →別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時) トリガー:編集が増えると重くなるので、タスク取得と同じスクリプトで出来ないのであれば諦めます。 ・(現在自分でも検索中ですが)同じタスクに登録された担当者全員を取得したい →タスク担当者=取得するアカウントだと、逆引きになるのでそもそもできない、、、? 一緒に登録される可能性のあるアカウント全員取得しても、同じタスクでもタスクIDが違うため何で一致させるかが問題
前提・実現したいこと
複数人と共有で使っているチャットワークのアカウントのタスクをGASで取得し「タスク集約シート」に集約、内容を整えたものを数式で「タスクシート」に一覧にしています。
トリガーは「変更時」です。(編集だとなぜか動かないときがある?)
自分のチャットワークはビジネスアカウント、取得したいアカウントは私が作ったためフリープランです。
スクリプト作成当初、組織外メンバーである私が作ったアカウントのタスクは取得出来なかったのですが、私のアカウントと一緒に登録されたタスクは取得できることがわかりました。
ですが、たまに丸々取得出来ていないときがあって不安定で困っています。
(1つ足りないときもあります)
また、「タスクシート」編集で作動したりしなかったり、不安定です。
スクリプトでは「タスク集約シート」を指定してますが、トリガーは「タスクシート」編集にしたいです。
もう一点、「タスクシート」編集で作動した際、一番最新のタスクのみ2つになるのでこちらも改善したいです。
発生している問題
こちらに改めてまとめます ・取得タスク結果が空になるときがある ・1つ取得できてないタスクがあるときがある(実際の例だと1つ目のタスクが取得できていない) ・「タスクシート」編集で作動したりしなかったりする ・「タスクシート」編集で作動した際、一番最新のタスクのみ2つになる
該当のソースコード
function getTasks(){ var params = { headers : {"X-ChatWorkToken" : '誰のトークンでも動く'}, method : "get" }; var roomID = 部屋ID; //タスクを拾うチャット var account_id = タスクを取得したい他人のアカウント; var url = "https://api.chatwork.com/v2/rooms/" + roomID + "/tasks?force=0&account_id=" +account_id+ "&status=open"; //(?force=0で未取得のみ)指定のグループチャットからタスクを取得 var strRespons = UrlFetchApp.fetch(url, params); //チャットワークAPIエンドポイントからレスポンスを取得 var json = JSON.parse(strRespons.getContentText()); //文字列をJSON形式として解析しJSONオブジェクトとして返す var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('タスク集約').getRange(1, 1); for each(var obj in json){ Logger.log(obj.body) }; for(var i=1; i<json.length; i++) { // スプレッドシートに書き込む sheet.offset(i, 0).setValue(json[i]["task_id"]); sheet.offset(i, 1).setValue(json[i]["body"]); //本文 sheet.offset(i, 2).setValue(json[i]["assigned_by_account"]["name"]); //依頼者 sheet.offset(i, 3).setValue(json[i]["limit_time"]); //期限 } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。