Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

GSSとGASとDiscordで遊んじゃおう

GSSとGASとDiscordで遊んじゃおう

こんにちは、葛の葉です。

GoogleSpreadSheetってあるじゃあないですか。

このGoogleSpreadSheetにscriptを実装できるようになっていて

それがGoogleAppsScriptっていうやつになります。

developers.google.com

さらに、そのGoogleAppsScriptを使ってDiscordと連携できるようになります。

今回はGoogleSpreadSheetのセルの中身をGASで取得してDiscordに発信するbot

作りたいと思います。


必要な材料

  • Googleアカウント
  • Discordアカウント
  • Discordのノリにそれなりについていける心

好きなシートを作るんだ

好きなシートを作りましょう。

A1セルに好きな言葉も入れておきましょう。

ちなみに私葛の葉って名前だけど、これ元は雌の狐の名前なので

よーく考えたら男なのに女性の名前使ってましたね。

まぁ…いいか…

f:id:Kuzunoha-NE:20180720194400p:plain

スクリプトエディタ起動

右上に[ツール]タブがあって、そのメニューにスクリプトエディタっていうのがありますので

クリックすると別画面が開いて、それがスクリプトエディタが表示されます。

f:id:Kuzunoha-NE:20180720194810p:plain

こんな画面がスクリプトエディタです。

f:id:Kuzunoha-NE:20180720195159p:plain


DiscordのWebhookを起動

botとして出力させたいDiscordのチャンネルで歯車のボタンを押します。

f:id:Kuzunoha-NE:20180720195519p:plain

そこから画面左側の[Webhooks][Webhooks作成]をクリックします。

出てきた画面には好きなbotの名前やアイコンを設定して保存しましょう。

f:id:Kuzunoha-NE:20180720200655p:plain

そうしたら画面右側に作ったbotが表示されていると思うので[編集]を押します。

さっきbotを作った画面に似たようなものが出てきますが、その下にスクロールすると

URL[画面の赤い四角部分]が表示されていますので、これをコピーします。

f:id:Kuzunoha-NE:20180720201250p:plain

コピーした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です。

f:id:Kuzunoha-NE:20180720204152p:plain

そしたら、葛の葉ってメッセージが#generalに表示されるはず!


A1の値を変えてもいいですし、sheet.getRange(1,1)(1,1)の値を変えてみるのも面白いですよ!