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

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

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

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

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

2回答

2123閲覧

slackのサジェストにbotが追加されない原因を教えて下さい。

sasyanonanooon

総合スコア6

Google Apps Script

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

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2018/03/10 09:19

編集2018/03/11 06:44

Slackの@を押した際に出るサジェストにbotが追加されれている事を確認したいです。

サジェストにbotが追加されない原因を教えて下さい。

何度押しても自分が作ったbotが会話のとこのサジェストに表示されなくて
困っています。

ちなみに、下記URLに則り、SlackからGASでリプライを受け取ろうとしているのですが、
サジェストにbotが表示されない状態(@を押しても一覧にbotの名前が表示されない)です。
http://vaaaaaanquish.hatenablog.com/entry/2017/09/27/184352

イメージ説明

【追記】
slackには以下のように投稿はできます。
イメージ説明

ですが、

イメージ説明

理想は以下のようにbotがリプライできてリプライ内容にbotが返信してくれる状態です。

イメージ説明

【追記2】
TypeError: undefined からプロパティ「parameter」を読み取れません。(行 17、ファイル「コード」)表示しない

というエラーが出てしまいました…何が違うのでしょうか。

イメージ説明

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/10 11:58

可能な範囲でソースを提示されたほうが回答を得やすいですよ。
退会済みユーザー

退会済みユーザー

2018/03/11 04:48

Slackへ投稿できていない、という解釈でよろしいですか?
sasyanonanooon

2018/03/11 05:43

slackには投稿できています。ただ指定したbotがサジェストに表示されなくて、返信をするスクリプトを書いても返信が返ってこなくて困っています。
退会済みユーザー

退会済みユーザー

2018/03/11 05:47

了解しました。回答の方に補足しておきます。
sasyanonanooon

2018/03/11 10:14

原典確認しました!ありがとうございます。 ですが、先ほどお教えいただいたコードを書いたところ TypeError: undefined からプロパティ「parameter」を読み取れません。(行 17、ファイル「コード」)表示しない というエラーが出てしまいました…(追記2参考) こちらどのようにすれば対処できますでしょうか?よろしくお願いいたします。
guest

回答2

0

追記・修正依頼でも触れましたが、Slackへ投稿できていないという前提なら、以下、修正してみてください。

javascript

1/*省略*/ 2 "payload":{text:text} //シングルクォート不要。オブジェクトのプロパティ名のクォートも不要。あってもいいですが。

あと、別途質問(https://teratail.com/questions/116352)でも回答しておりますが、一応、以下でメッセージが正しく成形され、ポストできているか確認できます。
slack API:chat.postMessage

[補足]
メッセージが正しく成形されていないからでしょうね。(<>で挟む)
上記、別途質問内でも触れていますが、「@username」の形式が廃止になるため、「@userID」を使用したほうが今後のためには良いでしょう。(原典も確認してくださいね)
以下、試してみてください。

javascript

1var message = "こんにちは <@" + e.parameter.user_name + "> さん";//パラメータに@が含まれていない場合

投稿2018/03/11 04:56

編集2018/03/11 06:02
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sasyanonanooon

2018/03/11 06:45

原展確認しました!ありがとうございます。 ですが、先ほどお教えいただいたコードを書いたところ TypeError: undefined からプロパティ「parameter」を読み取れません。(行 17、ファイル「コード」)表示しない というエラーが出てしまいました…(追記2参考) こちらどのようにすれば対処できますでしょうか?よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2018/03/11 14:23

そのままの意味ですよね。 parameterが存在しないか未設定ということです。 恐らくですが、フォーム等からのPOST送信による実行ではないですよね? doPost()についてもリファレンスをご確認ください。 スクリプトエディタ画面からデバッグをしたいのでしたら、function test()の方に「"<@userID> これはテストです。"」と設定して実行してみてください。
guest

0

自己解決

ウェブアプリケーションのバーションを上げていなかったのが原因でbotが返信してくれなかったみたいです。
(つねに新規作成であげてました…)
上げたら回答してくれました!!!!

投稿2018/03/14 14:13

sasyanonanooon

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問