前提・実現したいこと
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には投稿されていない状況です。
2つ質問します。(1)"xoxp-入力済です"ですが、ここに書いてますか?これってシートのプロパティなので、スクリプトエディタのファイル→プロジェクトのプロパティ→スクリプトのプロパティに名前と対になる値を設定し、名前のほうを("")に書くのですがそうなっていますか?なっていなければtoken = "xoxp-xxxxx"としたほうが分かりやすい気がします。(2)スクリプトエディタからdoPostを実行したとき、表示→実行トランスクリプトに出るものを可能な範囲で追記していただけませんか?
ご指摘ありがとうございます。(1)に関しては訂正しておきます。(2)に関しては、A行に入力したものが、B1にランダムで表示されていました。実行するたびに、上から一つずつずれていくという感じでした。拙い説明で大変申し訳ないのですが、どうぞよろしくお願いいたします。
(2)なのですが、doPostを書いている画面の上のほうにある再生ボタンマークを押していますよね??その直後にさらにその上のメニューの「表示」をクリックして「実行トランスクリプト」を開いてほしいのです。エラーが出ていることがあるので。
ちなみに参考リンクとして示しておられるものの「Outgoing WebHooksの設定」のところはやってますよね?最初空欄だと書いてあるURL(s)も埋めてますよね?
[18-05-17 08:07:24:064 JST] 実行を開始しています [18-05-17 08:07:24:094 JST] 実行が無事終了しました(合計ランタイム 0 秒)というふうに表示されていました。続きに書かれているOutgoingの設定、URLを埋めることもしています。引き続きどうもありがとうございます。
情報ありがとうございます。Gasのエラーがないため、slackのエラーだと思います。var token = "xoxp-xxxxxx";としていて、再生ボタンで送信できないのだと、もうtokenがおかしいくらいしかないです。また、slackから受け取るにはウェブアプリケーションとして公開が必要で、また公開した場合コードを手直しした際にも新バージョンとして再公開が必要です。解決に至らず申し訳ないです
tokenは何度も確認し、ウェブアプリケーションとしての公開・新バージョンへのアップデート等すべて行っていたので、問題ではなさそうです。ひとつひとつ丁寧に確認してくださりどうもありがとうございました。
回答1件
あなたの回答
tips
プレビュー