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

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

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

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

Slack

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

Q&A

解決済

1回答

585閲覧

GASを使ってランダムに言葉をslackに吐き出す

keikostar

総合スコア13

Google Apps Script

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

Slack

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

0グッド

0クリップ

投稿2018/05/15 09:48

編集2018/05/16 12:49

前提・実現したいこと

http://xxbxxqxx.com/post/25
こちらの記事を参考に、GASを使用してslackのbotを作成しています。
spreadsheetからランダムに一言吐き出させるbotです。

発生している問題・エラーメッセージ

記事通りに打ち込んだつもりなのですが、引き金となる言葉を入力しても作動しません。
なにかが不足しているのでしょうか?
初心者のため判断がつきませんでした。ご教授よろしくお願いいたします。

該当のソースコード

function doPost(y) { var token = PropertiesService.getScriptProperties().getProperty("xoxp-xxxx"); var name = "positive spino"; var icon = "http://drive.google.com/uc?export=view&id={1-PUs8mxIpuJQzHnLOr43yGE5o5c_iqMa}"; var app = SlackApp.create(token); var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName('シート1'); var range = sheet.getRange("シート1!B1").setFormula('=INDIRECT("シート1!A:A" & INT(RAND()*7+1))'); var message = sheet.getRange("シート1!B1").getValue(); return app.postMessage("#general", message, { username: name, icon_url: icon }); }

補足情報(FW/ツールのバージョンなど)

spreadsheetも、URLの通りにAのみに記入し、Bは空欄になっています。
またspreadsheetには結果が吐き出されていますが、slackには投稿されていない状況です。

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

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

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

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

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

papinianus

2018/05/16 09:56

2つ質問します。(1)"xoxp-入力済です"ですが、ここに書いてますか?これってシートのプロパティなので、スクリプトエディタのファイル→プロジェクトのプロパティ→スクリプトのプロパティに名前と対になる値を設定し、名前のほうを("")に書くのですがそうなっていますか?なっていなければtoken = "xoxp-xxxxx"としたほうが分かりやすい気がします。(2)スクリプトエディタからdoPostを実行したとき、表示→実行トランスクリプトに出るものを可能な範囲で追記していただけませんか?
keikostar

2018/05/16 12:49

ご指摘ありがとうございます。(1)に関しては訂正しておきます。(2)に関しては、A行に入力したものが、B1にランダムで表示されていました。実行するたびに、上から一つずつずれていくという感じでした。拙い説明で大変申し訳ないのですが、どうぞよろしくお願いいたします。
papinianus

2018/05/16 16:06

(2)なのですが、doPostを書いている画面の上のほうにある再生ボタンマークを押していますよね??その直後にさらにその上のメニューの「表示」をクリックして「実行トランスクリプト」を開いてほしいのです。エラーが出ていることがあるので。
papinianus

2018/05/16 16:06 編集

ちなみに参考リンクとして示しておられるものの「Outgoing WebHooksの設定」のところはやってますよね?最初空欄だと書いてあるURL(s)も埋めてますよね?
keikostar

2018/05/16 23:09

[18-05-17 08:07:24:064 JST] 実行を開始しています [18-05-17 08:07:24:094 JST] 実行が無事終了しました(合計ランタイム 0 秒)というふうに表示されていました。続きに書かれているOutgoingの設定、URLを埋めることもしています。引き続きどうもありがとうございます。
papinianus

2018/05/17 04:17

情報ありがとうございます。Gasのエラーがないため、slackのエラーだと思います。var token = "xoxp-xxxxxx";としていて、再生ボタンで送信できないのだと、もうtokenがおかしいくらいしかないです。また、slackから受け取るにはウェブアプリケーションとして公開が必要で、また公開した場合コードを手直しした際にも新バージョンとして再公開が必要です。解決に至らず申し訳ないです
keikostar

2018/05/17 04:21

tokenは何度も確認し、ウェブアプリケーションとしての公開・新バージョンへのアップデート等すべて行っていたので、問題ではなさそうです。ひとつひとつ丁寧に確認してくださりどうもありがとうございました。
guest

回答1

0

自己解決

結局こちらのやり方は諦め、他のサイトを参考にいたしました。
ご協力ありがとうございました。

投稿2018/05/18 06:35

keikostar

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問