Discordで指定時間に通知してくれるリマインダーBot「Reminder Bot」の使い方

この記事は2019年11月現在の情報です。

## これなに？
Discordサーバー上で日時とメッセージをコマンド入力すると、その時間にメッセージを飛ばして通知してくれるリマインダー用のBot。

機能が簡単すぎるせいか意外とリマインダーのBotは少なく、このBotも日本語記事も存在しなかったため作成しました。
自力でコーディングする方法や、[Googleカレンダーと連動させる方法](https://note.mu/ryu_sv/n/n452fd6bf22ba)も存在しますが、こちらのBot導入が一番簡単で初心者向けだと思われます。

## リンク
- [公式ヘルプ][help]
- [GitHub](https://github.com/reminder-bot) (実装内容を見たい方向け)

[help]:https://reminder-bot.com/help/

## 導入方法
1. [公式ヘルプ][help]上部の**「Invite the Bot」**をクリック。
![pageshot of 'Reminder Bot - Help' @ 2019-11-17-1631'15 - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/07c2d6b9-16cf-0426-63ab-027bec6dc92b.png)

1. **「サーバーを選択」**でBotを導入したいサーバーを選び、**「認証」**をクリック。
![pageshot of ' ' @ 2019-11-17-1637'05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/85e0cd4a-50c7-5343-ea9e-e4487751ca86.png)
![2019-11-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/19f07cf5-3037-a09a-c5f1-a2d0a372825d.png)

1. 導入したDiscordサーバー上で、タイムゾーンを設定するコマンドを打ちます。

```markdown:Discord
$timezone Asia/Tokyo
```

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3533343530302f33303239343231662d623133632d623064342d353162622d6133303936626462356138352e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/6a000682-7aa9-94cc-0b05-f8edb0222227.png)


## リマインダー登録
([公式ヘルプ][help]を見れば分かるように、いろんな書き方で登録ができます。これは一例として考えてください)

リマインダー登録のコマンドは以下になります。
(コマンドは改行やメンションに対応してます。[運用例参照](#運用例))

```markdown:Discord
$natural 日付 時刻 send 任意のテキスト to #チャンネル名
```

Discordのサーバー上でコマンドを打つと…………

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/3ad34d6f-c592-401f-74a4-d27924cabaf2.png)

指定した日時になったらBotが書き込んでくれます。
![2019-11-17 (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/aa95585e-dce7-b2fc-e99c-60e060848b0f.png)

※補足
` to #チャンネル名`を入れない場合は、書き込んだチャンネルへ通知してくれます。
過去の時刻を入れたり、コマンドが間違っていたりすると、エラーメッセージを返してくれます。(もちろんリマインダー登録されていないので、修正して再度コマンド入力しましょう)


## リマインダー削除
以下のコマンドを打つと、今登録されている全リマインダーのリストが表示されるため、

```markdown:Discord
$del
```

削除したい番号を打ちます。

```markdown:Discord
数字
(数字,数字,数字,...と複数個入力してもOK)
```

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/5899c66d-1ad8-fa17-bed2-44c2c29d55f5.png)

リストは以下の画像のように登録した順番で並んでいます。
(通知する時間が近い順ではないので注意です。)

リスト表示は日時が出ないため、同じメッセージを登録している場合は登録順を把握するか、メッセージ内容に特定できる情報を事前に入れておくかのどちらかで対応すると良いでしょう。

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/ab728d9b-2a53-7e4a-511b-2ce7af072482.png)


※補足
`Deleted X reminders!`という表示は、「X個のリマインダーを削除した!」という意味です。
`Deleted 0 reminders!`という表示の場合は、何も削除できていません。


## 運用例
コマンドは改行することもできますが、**コマンド間には半角スペース(改行では×)が入っていないと正しくコマンドを認識してくれません**。
コピペして使い回す場合は、固定のコマンド部分には半角スペースを仕込み、よく変更する行(日時や通知文章など)には半角スペースを入れない運用をすると、間違いは少なくなると思います。


```markdown:Discord(コピペして使い回す用)
$natural 
日付 時刻
 send 
@メンション
通知したい文章
 to #チャンネル名
```

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/39add217-c3ae-9a91-3dbe-62cc65837529.png)

↑のように、Botとリマインダー管理する人しか見れないテキストチャンネルを作っておくと、コマンド入力時に他の人へ通知されるのを防ぐことができます。

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534500/49165eb9-2aae-40a9-c726-65f7ad1aa43f.png)

## さいごに
他にも様々なコマンドが存在しており、アップデートも頻繁なようなので、使用する際はざっと[公式ヘルプ][help]を眺めておきましょう。

**Botを活用してゲーム仲間の遅刻を防ぎましょう！！**