質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Google Apps Script

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

Q&A

解決済

1回答

1097閲覧

chatworkでgasを用いたチャットグループの自動生成

jyojyotk

総合スコア22

Google Apps Script

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

0グッド

0クリップ

投稿2022/04/14 04:00

編集2022/05/16 05:35

lineから「準備完了!」という文字列を受け取ったときにchatworkでグループの作成をしています。

javascript

1var CHANNEL_ACCESS_TOKEN = 'CHANNEL_ACCESS_TOKEN'; 2var line_endpoint = 'https://api.line.me/v2/bot/message/reply'; 3const fromWord=["準備完了!"]; 4function getUserName(UID){ 5 var url4 = 'https://api.line.me/v2/bot/profile/' + UID; 6 try {//エラー処理 7 var response = UrlFetchApp.fetch(url4,{ 8 'headers': { 9 'Content-Type': 'application/json; charset=UTF-8', 10 'Authorization': 'Bearer ' +CHANNEL_ACCESS_TOKEN, 11 } 12 }) 13 }catch(e){//表示名を取得できなかったら 14 return 0; 15 } 16 var json2= JSON.parse(response.getContentText()); 17 return json2["displayName"] 18 }; 19function log(message2){ 20 var spreadsheet = SpreadsheetApp.openById('スプレッドシートID'); 21 var ss = spreadsheet.getSheetByName('シート1'); 22 ss.appendRow([message2]);}; 23 24function doPost(e) { 25 var json = JSON.parse(e.postData.contents); 26 var userId =json.events[0].source.userId; 27 log(userId); 28 var userName=getUserName(userId); 29 log(userName); 30 var reply_token = json.events[0].replyToken; //reply token 31 log(reply_token); 32 var message = json.events[0].message.text; 33 log(message); 34 35 if(fromWord.includes(message)){ 36 // グループチャットの自動生成 37 const postoptions = { 38 method: 'POST', 39 headers: { 40   ContentType : 'application/json', 41   'X-ChatWorkToken': 'token' 42 } 43 }; 44 const getoptions = { 45 method: 'GET', 46 headers: { 47   ContentType : 'application/json', 48   'X-ChatWorkToken': 'token' 49 } 50 }; 51 var accountID="アカウントID" 52 53 54 var url1 ='https://api.chatwork.com/v2/rooms?name='+userName+'様無料体験用グループ&link=1&link_need_acceptance=0&members_admin_ids='+accountID+'&members_member_ids='+userId; 55 try{var resp = UrlFetchApp.fetch(url1,postoptions); 56 log(resp)}catch(e){ 57 log(e) 58 } 59 var json3=JSON.parse(resp); 60 log(json3) 61 var jsonNewRoomID=json3.room_id; 62 log(jsonNewRoomID); 63 var url2 ='https://api.chatwork.com/v2/rooms/'+jsonNewRoomID+'/link'; 64 var resp2 = UrlFetchApp.fetch(url2, getoptions); 65 var json4=JSON.parse(resp2); 66 var jsonlinkURL=json4.url; 67 log(jsonlinkURL) 68 var body = '下記リンクから無料体験用グループにご参加ください!'+jsonlinkURL}};

log(message)まではちゃんと出てきているのですが、try~catchの部分で下のようなエラーが出てしまいます。
Exception: 對 https://api.chatwork.com 的要求失敗,系統回傳代碼 400。伺服器回應被截斷:{"errors":["You can only select group chat members from your Chatwork contact list."]} (請使用 muteHttpExceptions 選項查看完整回應)
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyojyotk

2022/04/15 02:51

グループ作成のためのメンバーはちゃんとコンタクトリストに入っている人を使っています
guest

回答1

0

自己解決

lineのuserIdがchatworkのuserIdだと勘違いをしていてerrorが出続けた。

投稿2022/04/15 06:59

jyojyotk

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問