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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

API

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

ChatWork

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

Q&A

解決済

2回答

4543閲覧

チャットワークのルームへメッセージを送信したい

hbc

総合スコア16

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

API

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

ChatWork

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

0グッド

1クリップ

投稿2019/04/13 08:14

編集2019/04/14 06:33

前提

GAS(GoogleAppsScript)について質問です。
社内で共有している受付シートに入力された際、チャットワークへ内容が送信されるプログラムを作りたい。
前回、ご回答者様のおかげで社内で共有している受付シート内容がマイチャットへ送信されるようになるところまで来ました。
そこで今回は、通知内容をチャットルームへ送信されるようにしたいと考えております。

実現したいこと

1.通知内容をチャットルームへ送信されるようにしたい。

発生している問題

1.さまざまなWEBサイトを参考にテスト送信コードを試したのだがエラーがでて送信できない。
2.ルームへテスト送信できたとして、前回構築して頂いた構文へどのように組み込めば良いのかわからない。

イメージ説明

該当のソースコード

function myFunction(e) { if(e["value"] === undefined) { return; } //削除時は何もしない const c = e.range.getColumn(); if(c !== 7) { return; } //G列でなければ何もしない const r = e.range.getRow(); const sheet = e.range.getSheet(); const data = sheet.getRange(r,1,1,8).getValues()[0]; if(data[7]) { return; } //H列がTRUEだったら何もしない。true以外のtruelyな文字列が入っていると誤動作する var message = '[info][title]問い合わせがありました(roger)[/title]'; // message += '日付:' + prettyPrintDate(data[1]) + '[hr]'; //day message += '【日付】' + data[1] + '\n'; //day message += '【時間】' + data[2] + '\n'; //time message += '【氏名】' + data[3] + '\n'; //person message += '【番号】' + data[4] + '\n'; //number message += '【内容】' + data[5] + '\n'; //naiyou message += '【受付】' + data[6] + '[/info]'; //tantou const token = PropertiesService.getScriptProperties().getProperty('CW_TOKEN'); sendMessage(token, message); sheet.getRange(r,8).setValue(true); } function prettyPrintDate(d) { //B列が空白とか日付っぽく見えるただの文字列だったらエラーになる return (d.getMonth() + 1) + "/" + d.getDay(); } //質問からコピー function sendMessage(token, body){ var cw = ChatWorkClient.factory({token: token}); cw.sendMessageToMyChat(body); }

↑上記はマイチャットへ送信されるコードです。
チャットルームへ送信されるようにするためにはどのように記述すればよいのでしょう。
ご教示いただけると幸いです。
どうぞ宜しくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

function sendMessage(token, body){ var cw = ChatWorkClient.factory({token: token}); cw.sendMessageToMyChat(body); }

↑ここを
↓こう

function sendMessage(token, body){ var cw = ChatWorkClient.factory({token: token}); cw.sendMessage({ 'room_id': '****', // room ID 'body': body}); }

投稿2019/04/16 08:58

macaron_xxx

総合スコア3191

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

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

hbc

2019/04/16 10:52

ご回答ありがとうございます。 できました!!!ありがとうございます!!
guest

0

Chatworkのドキュメントを見る限り、Chatworkからのエラー応答がそのまま上の「メッセージの詳細」にでているように見えます。
http://developer.chatwork.com/ja/endpoints.html

エラー内容が「 "errors": ["Invalid API token"]」となっているので、API tokenが誤っているのが一番可能性として高いと思われます。

記載のコードでは以下の行でAPI tokenを取得していますので、スクリプトプロパティで「CW_TOKEN」に対するAPI tokenが正しく設定されているか確認してみてください。

const token = PropertiesService.getScriptProperties().getProperty('CW_TOKEN');

参考URL
https://tonari-it.com/gas-property-store/

投稿2019/04/13 08:54

dett

総合スコア115

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

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

hbc

2019/04/14 06:52

ご回答ありがとうございます。 ご指摘の件、スクリプトプロパティ内容を確認したのですが、間違っている様子はございませんでした。 しかし、試しに生トークンID入れて実行してみたらルームへコメントを送信することができました。しょうがないので生IDで記述しようと思います。 ありがとうございます。
papinianus

2019/04/14 13:02

横から失礼します。 function test() { var id = "ここに生トークンIDを入れる"; var token = PropertiesService.getScriptProperties().getProperty('CW_TOKEN'); Logger.log(id === token); } とかやって比較すべきだと思います。改行コードのような不可視文字や末尾に半角スペースがあるなど、違う可能性はいくらでも考えられるので。
hbc

2019/04/16 08:10

ご回答ありがとうございます。 承知致しました。いろいろ試してみます。
hbc

2019/04/16 08:13

現在、上記該当ソースコードですとマイチャットへ内容が送られてくる訳ですが、指定チャットルームへ飛ばすようにするためには何行目をどのように記述すべきかわかりますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問