GoogleSpreadSheetからdiscordにpost

ストックじゃなくていいねください。


# 事前準備
途中から [前回](https://qiita.com/fishkiller/items/5e89bd04df81034a91ee)までやってる前提の話ができてきます。
ただ、GoogleAppsScriptでdiscordにpostしたいだけの人は無視してください。

# GoogleSpreadSheet
今回はGooglesSpreadSheetからdiscordにポストさせます。
前回同様に[R6S持ちキャラ](https://docs.google.com/spreadsheets/d/1VHruuvXrQXxvfFxVpLi1mz050BJHHrLpe_itdWOlHys/edit#gid=1404341781)というスプシを見本に使用します。

# discordに送信用botを作成
1. 追加したいdiscordのサーバー設定を開き、Webhoooksを選択。
2. 名前と追加するチャンネルを設定し保存。また、その時にwebhook URLをメモしておいてください。(何度でも見れますのでメモしなくても必要なときにコピーするだけでも大丈夫です)    
![39e700d23ba07e700b9bada5cc6cfd32.png](https://qiita-image-store.s3.amazonaws.com/0/209263/b380f2af-3404-2f45-8812-328eccc0b644.png)
3. 先程のwebhook URLをブラウザで開いてください。
4. "token":"トークン"が書かれているのでtokenをメモしてください。

# GoogleAppsScript
操作したい[スプシ](https://docs.google.com/spreadsheets/d/1VHruuvXrQXxvfFxVpLi1mz050BJHHrLpe_itdWOlHys/edit#gid=1404341781)のツールタブ>スクリプトエディタを選択
ファイル→新規作成→スクリプトファイル
## source
```

function R6S() {
  // 取り扱いたいスプレッドシートのURL
    const spreadSheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1VHruuvXrQXxvfFxVpLi1mz050BJHHrLpe_itdWOlHys/edit#gid=1404341781');
  
    const message = "スプシ更新したよ！！"　//送信するメッセージ
    
    discord(message);
}
function discord(message) {
    // 各所必要な項目をセットします
    const url        = 'https://discordapp.com/api/webhooks/zzzzzzzzzzzzzzzzzzzzzzzz';//discordのwebhooksのurl
    const token      = 'MzkwMTkzNjQ4NzQ4MzMxMDE4.DRwEmA.tMdsdsdsdsDU_Bsasasasasasaasasasasas';//discordのwebhooksのトークン
    const channel    = '#general';//送信したいチャンネル
    const text       = message;
    const username   = 'らんらん';//送信させたいユーザー名
    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);
  
  //Logger.log(response.getContentText());
 }
```
今回は「スプシ更新したよ！！」とpostするだけですが、時間の取得やシート内容をpostすることもできます。
自分で調べて改良してみてください。

## トリガーの設定
スクリプトエディタに時計みたいなマークがあるのでクリック！
![80792eee92fe4403784c5a6b93c3805e.png](https://qiita-image-store.s3.amazonaws.com/0/209263/179f9fc3-9b18-91fc-4440-4796fd415a8d.png)   
時間や編集時など実行するタイミングを設定します。
今回はシートが編集されると実行し、discordにbotが「スプシ更新したよ！！」と送信されます。

#　スプシから情報を取得
ここから[前回](https://qiita.com/fishkiller/items/5e89bd04df81034a91ee)に追加していきます。
## source
```ruby:discord_bot.rb

########ここより上は前回のdiscord_bor.rb
# スプシ更新したよ!!と送信されると実行
bot.message(content: 'スプシ更新したよ！！') do |event|
    range = '持ちキャラ一覧!A2:O14'#指定範囲
    response = service.get_spreadsheet_values(spreadsheet_id, range)
    response.values.each do |row|
       #Print columns A and O, which correspond to indices 0 and 4.
      event.respond "#{row[0]},#{row[1]}, #{row[2]}, #{row[3]}, #{row[4]}, #{row[5]}, #{row[6]}, #{row[7]}, #{row[9]}, #{row[10]}, #{row[11]}, #{row[12]}, #{row[13]}"
    end
  end
```
スプシ更新したよ！とbotが送信すると別のbotがスプシの情報を参照して指定範囲の内容を送信します。

## おまけ
Discordにwebhookのbotを作ったので、GoogleHomeでdiscordのbotにメッセージを送信させるようしましょう。
書くのが面倒なのでQiitaにあった記事拾ってきました。
[ここ](https://qiita.com/syado_/items/5064ae7724ec89eac14c)の記事見てやってみてください。
以上