質問編集履歴

4 募集する回答の明示

OBMURR

OBMURR score 2

2019/03/06 15:00  投稿

チャットワークのタスク取得結果が不安定・タスク投稿日を取得したい
### 回答募集中:追加で実現したいこと  
 
```  
・タスク投稿日を取得したい(メッセージ取得には"send_time"があるが、タスク取得にはない?)  
 
→別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時)  
トリガー:編集が増えると重くなるので、タスク取得と同じスクリプトで出来ないのであれば諦めます。  
 
・(現在自分でも検索中ですが)同じタスクに登録された担当者全員を取得したい  
→タスク担当者=取得するアカウントだと、逆引きになるのでそもそもできない、、、?  
一緒に登録される可能性のあるアカウント全員取得しても、同じタスクでもタスクIDが違うため何で一致させるかが問題  
```  
 
### 前提・実現したいこと
複数人と共有で使っているチャットワークのアカウントのタスクをGASで取得し「タスク集約シート」に集約、内容を整えたものを数式で「タスクシート」に一覧にしています。
トリガーは「変更時」です。(編集だとなぜか動かないときがある?)
自分のチャットワークはビジネスアカウント、取得したいアカウントは私が作ったためフリープランです。
スクリプト作成当初、組織外メンバーである私が作ったアカウントのタスクは取得出来なかったのですが、私のアカウントと一緒に登録されたタスクは取得できることがわかりました。
ですが、たまに丸々取得出来ていないときがあって不安定で困っています。
(1つ足りないときもあります)
また、「タスクシート」編集で作動したりしなかったり、不安定です。
スクリプトでは「タスク集約シート」を指定してますが、トリガーは「タスクシート」編集にしたいです。
もう一点、「タスクシート」編集で作動した際、一番最新のタスクのみ2つになるのでこちらも改善したいです。
### 発生している問題
```
こちらに改めてまとめます
・取得タスク結果が空になるときがある
・1つ取得できてないタスクがあるときがある(実際の例だと1つ目のタスクが取得できていない)
・「タスクシート」編集で作動したりしなかったりする
・「タスクシート」編集で作動した際、一番最新のタスクのみ2つになる
```
### 追加で実現したいこと  
```  
・タスク投稿日を取得したい(メッセージ取得には"send_time"があるが、タスク取得にはない?)  
 
→別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時)  
トリガー:編集が増えると重くなるので、タスク取得と同じスクリプトで出来ないのであれば諦めます。  
 
・(現在自分でも検索中ですが)同じタスクに登録された担当者全員を取得したい  
→タスク担当者=取得するアカウントだと、逆引きになるのでそもそもできない、、、?  
一緒に登録される可能性のあるアカウント全員取得しても、同じタスクでもタスクIDが違うため何で一致させるかが問題  
```  
### 該当のソースコード
```ここに言語名を入力
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"]); //期限
}
}
```
  • API

    1863 questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Google Apps Script

    1351 questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

  • ChatWork

    34 questions

    業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

3 追加で実現したいことに追記

OBMURR

OBMURR score 2

2019/03/01 15:50  投稿

チャットワークのタスク取得結果が不安定・タスク投稿日を取得したい
### 前提・実現したいこと
複数人と共有で使っているチャットワークのアカウントのタスクをGASで取得し「タスク集約シート」に集約、内容を整えたものを数式で「タスクシート」に一覧にしています。
トリガーは「変更時」です。(編集だとなぜか動かないときがある?)
自分のチャットワークはビジネスアカウント、取得したいアカウントは私が作ったためフリープランです。
スクリプト作成当初、組織外メンバーである私が作ったアカウントのタスクは取得出来なかったのですが、私のアカウントと一緒に登録されたタスクは取得できることがわかりました。
ですが、たまに丸々取得出来ていないときがあって不安定で困っています。
(1つ足りないときもあります)
また、「タスクシート」編集で作動したりしなかったり、不安定です。
スクリプトでは「タスク集約シート」を指定してますが、トリガーは「タスクシート」編集にしたいです。
もう一点、「タスクシート」編集で作動した際、一番最新のタスクのみ2つになるのでこちらも改善したいです。
### 発生している問題
```
こちらに改めてまとめます
・取得タスク結果が空になるときがある
・1つ取得できてないタスクがあるときがある(実際の例だと1つ目のタスクが取得できていない)
・「タスクシート」編集で作動したりしなかったりする
・「タスクシート」編集で作動した際、一番最新のタスクのみ2つになる
```
### 追加で実現したいこと
```
・タスク投稿日を取得したい(メッセージ取得には"send_time"があるが、タスク取得にはない?)
別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時)
別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時)
トリガー:編集が増えると重くなるので、タスク取得と同じスクリプトで出来ないのであれば諦めます。
 
・(現在自分でも検索中ですが)同じタスクに登録された担当者全員を取得したい  
→タスク担当者=取得するアカウントだと、逆引きになるのでそもそもできない、、、?  
一緒に登録される可能性のあるアカウント全員取得しても、同じタスクでもタスクIDが違うため何で一致させるかが問題  
```
### 該当のソースコード
```ここに言語名を入力
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"]); //期限
}
}
```
  • API

    1863 questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Google Apps Script

    1351 questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

  • ChatWork

    34 questions

    業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

2 問題点に補足追加

OBMURR

OBMURR score 2

2019/03/01 15:37  投稿

チャットワークのタスク取得結果が不安定・タスク投稿日を取得したい
### 前提・実現したいこと
複数人と共有で使っているチャットワークのアカウントのタスクをGASで取得し「タスク集約シート」に集約、内容を整えたものを数式で「タスクシート」に一覧にしています。
トリガーは「変更時」です。(編集だとなぜか動かないときがある?)
自分のチャットワークはビジネスアカウント、取得したいアカウントは私が作ったためフリープランです。
スクリプト作成当初、組織外メンバーである私が作ったアカウントのタスクは取得出来なかったのですが、私のアカウントと一緒に登録されたタスクは取得できることがわかりました。
ですが、たまに丸々取得出来ていないときがあって不安定で困っています。
(1つ足りないときもあります)
また、「タスクシート」編集で作動したりしなかったり、不安定です。
スクリプトでは「タスク集約シート」を指定してますが、トリガーは「タスクシート」編集にしたいです。
もう一点、「タスクシート」編集で作動した際、一番最新のタスクのみ2つになるのでこちらも改善したいです。
### 発生している問題
```
こちらに改めてまとめます
・取得タスク結果が空になるときがある
・1つ取得できてないタスクがあるときがある
・1つ取得できてないタスクがあるときがある(実際の例だと1つ目のタスクが取得できていない)
・「タスクシート」編集で作動したりしなかったりする
・「タスクシート」編集で作動した際、一番最新のタスクのみ2つになる
```
### 追加で実現したいこと
```
・タスク投稿日を取得したい(メッセージ取得には"send_time"があるが、タスク取得にはない?)
別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時)
トリガー:編集が増えると重くなるので、タスク取得と同じスクリプトで出来ないのであれば諦めます。
```
### 該当のソースコード
```ここに言語名を入力
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"]); //期限
}
}
```
  • API

    1863 questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Google Apps Script

    1351 questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

  • ChatWork

    34 questions

    業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

1 問題点の追加

OBMURR

OBMURR score 2

2019/03/01 15:29  投稿

チャットワークのタスク取得結果が不安定・タスク投稿日を取得したい
### 前提・実現したいこと
複数人と共有で使っているチャットワークのアカウントのタスクをGASで取得し「タスク集約シート」に集約、内容を整えたものを数式で「タスクシート」に一覧にしています。
トリガーは「変更時」です。(編集だとなぜか動かないときがある?)
自分のチャットワークはビジネスアカウント、取得したいアカウントは私が作ったためフリープランです。
スクリプト作成当初、組織外メンバーである私が作ったアカウントのタスクは取得出来なかったのですが、私のアカウントと一緒に登録されたタスクは取得できることがわかりました。
ですが、たまに丸々取得出来ていないときがあって不安定で困っています。
(1つ足りないときもあります)  
また、「タスクシート」編集で作動したりしなかったり、不安定です。
スクリプトでは「タスク集約シート」を指定してますが、トリガーは「タスクシート」編集にしたいです。
もう一点、「タスクシート」編集で作動した際、一番最新のタスクのみ2つになるのでこちらも改善したいです。
### 発生している問題
```
こちらに改めてまとめます
・取得タスク結果が空になるときがある
・1つ取得できてないタスクがあるときがある  
・「タスクシート」編集で作動したりしなかったりする
・「タスクシート」編集で作動した際、一番最新のタスクのみ2つになる
```
### 追加で実現したいこと
```
・タスク投稿日を取得したい(メッセージ取得には"send_time"があるが、タスク取得にはない?)
別スクリプトでアクティブセルを基準に日付入力はしたことあるのですが、編集だと作動しても、「タスクシート」に数式で情報が入るだけではアクティブセルにならず作動しませんでした(トリガー:編集時)
トリガー:編集が増えると重くなるので、タスク取得と同じスクリプトで出来ないのであれば諦めます。
```
### 該当のソースコード
```ここに言語名を入力
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"]); //期限
}
}
```
  • API

    1863 questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Google Apps Script

    1351 questions

    Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

  • ChatWork

    34 questions

    業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る