DiscordのWebHook機能を使おう！

# はじめに
みなさん、Discordは使っていますか?
今、とても有名なサービスですよね
そんな、DiscordのWebHook機能を使って、BOTみたいなことをやってみましょう！
# ウェブフックURLを発行
Discordのサーバー設定画面から、連携サービスを開くと、ウェブフックを追加というボタンがあると思います。押しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2349977/e5c7cb73-4333-1013-97d9-f7c2210b9804.png)
ウェブフックURLをコピーを押してください。
これで、ウェブフックURLを手に入れることができました。（これは、どこかに保存しておいてください。後で使います。）
## APIを使って投稿しよう
APIとして、チャンネルにメッセージを送信してみましょう。
今回は、Chromeの拡張機能のTalend API Testerを使います。
↓Chromeのウェブストア
https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm?hl=ja
では、やってみます。

METHODにPOSTを指定して、URLのところに先程のウェブフックURLを指定します。
Headerには、Content-type:application/jsonを入れます。
Bodyに
```
{
  "content": "任意のメッセージ"
}
```
を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2349977/2a9ac489-c4c9-af71-cb94-0e17b31dba74.png)

できたら、実行しましょう！
しっかりと、チャンネルにメッセージが送信されていると思います！

## PHPで実行しよ
ということで、メッセージをフォームから受け取ってそれを送信しましょう！
メッセージ送信するコード
```index.html
<!DOCTYPE html>
<html>
  <head>
    <title>DiscordBot</title>
    <meta charset="utf-8" />
    <script type="text/javascript" charset="UTF-8"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <style>
    @import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@700&family=Poppins:wght@700&display=swap");

    * {
      font-family: "poppins", "Noto Sans JP", sans-serif;
    }
    body{
      margin-left: 15px;
    }
    </style>
  </head>
  <body>
    <p>
      <h2>送信フォーム</h2>
    </p>
    <form action="post.php" method="post">
        <div class="input-group">
          <span class="input-group-text" id="basic-addon5">名前</span>
          <input type="text" class="form-control" name="name">
        </div><br>
        <div class="input-group">
          <span class="input-group-text" id="basic-addon5">内容</span>
          <textarea name="content" class="form-control" cols="50" rows="5"></textarea>
        </div>
      <p>
        <input type="submit" name="send" value="送信">
      </p>
    </form>
  </body>
  </html>
```
メッセージを送るコード
```post.php
<?php
$CURLERR = NULL;

    $data = array(
        'content' => $_POST["content"] . " by " . $_POST["name"],
    );

    $url = 'ここにURL';

    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_POST, TRUE);                            //POSTで送信
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));    //データをセット
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);                    //受け取ったデータを変数に
    $html = curl_exec($ch);

    if(curl_errno($ch)){        //curlでエラー発生
        $CURLERR .= 'curl_errno：' . curl_errno($ch) . "\n";
        $CURLERR .= 'curl_error：' . curl_error($ch) . "\n";
        $CURLERR .= '▼curl_getinfo' . "\n";
        foreach(curl_getinfo($ch) as $key => $val){
            $CURLERR .= '■' . $key . '：' . $val . "\n";
        }
        echo nl2br($CURLERR);
    }
    curl_close($ch);
    echo 送信しました。;
?>
```
PHPはCurlで送信しています。
参考：https://qiita.com/okdyy75/items/d21eb95f01b28f945cc6

どうでしょうか。この記事が参考になってもらえれば嬉しいです。
（何気に初投稿）