GSSとGASとDiscordで遊んじゃおう
GSSとGASとDiscordで遊んじゃおう
こんにちは、葛の葉です。
GoogleSpreadSheet
ってあるじゃあないですか。
このGoogleSpreadSheetにscriptを実装できるようになっていて
それがGoogleAppsScript
っていうやつになります。
さらに、そのGoogleAppsScriptを使ってDiscord
と連携できるようになります。
今回はGoogleSpreadSheetのセルの中身をGASで取得してDiscordに発信するbotを
作りたいと思います。
必要な材料
- Googleアカウント
- Discordアカウント
- Discordのノリにそれなりについていける心
好きなシートを作るんだ
好きなシートを作りましょう。
A1
セルに好きな言葉も入れておきましょう。
ちなみに私葛の葉
って名前だけど、これ元は雌の狐の名前なので
よーく考えたら男なのに女性の名前使ってましたね。
まぁ…いいか…
スクリプトエディタ起動
右上に[ツール]タブ
があって、そのメニューにスクリプトエディタ
っていうのがありますので
クリックすると別画面が開いて、それがスクリプトエディタが表示されます。
こんな画面がスクリプトエディタです。
DiscordのWebhookを起動
botとして出力させたいDiscordのチャンネルで歯車のボタンを押します。
そこから画面左側の[Webhooks]
→[Webhooks作成]
をクリックします。
出てきた画面には好きなbotの名前やアイコンを設定して保存しましょう。
そうしたら画面右側に作ったbotが表示されていると思うので[編集]
を押します。
さっきbotを作った画面に似たようなものが出てきますが、その下にスクロールすると
URL[画面の赤い四角部分]が表示されていますので、これをコピーします。
コピーしたURLをブラウザーで開くと何やらいろいろ書かれたものが出てきますが、
"token: "
の右側の色んな文字数字をコピーしておいてください。
スクリプトエディタでコードを書く
function submit(){ discord(get_value()) }; function get_value() { var sheet = get_sheet('自分の作ったシートのURL',0); var range = sheet.getRange(1,1); //ここの(1,1)は座標です。第一引数が行、第二引数が列です。 var value = range.getValue(); return value; }; function get_sheet(gss_url,sheet_num) { var ss = SpreadsheetApp.openByUrl(gss_url); var sheet = ss.getSheets()[sheet_num]; return sheet; }; function discord(message) { const url = 'さっきコピーしたwebhooksのURL'; const token = 'さっきのURLの中のtokenの文字列'; const channel = '#general'; const text = message; const username = 'bot'; const parse = 'full'; const method = 'post'; const payload = { 'token' : token, 'channel' : channel, "content" : text, 'username' : username, 'parse' : parse, }; const params = { 'method' : method, 'payload' : payload, 'muteHttpExceptions': true }; response = UrlFetchApp.fetch(url, params); }
関数の実行
関数を選択
を押すとプルダウンがでてきますのでsubmit
を押してください。
実行ボタンを押すとスクリプトエディタの上部になんかメッセージが出てきます。
権限がどうのって聞いてきますが、ポチポチ押せばOKです。
そしたら、葛の葉
ってメッセージが#general
に表示されるはず!
A1
の値を変えてもいいですし、sheet.getRange(1,1)
の(1,1)
の値を変えてみるのも面白いですよ!