本サイトはアフィリエイト等の広告を利用しています

LINE Notifyの代替としてのDiscord

これはMac版のAbout画面です。バージョン、低すぎないか…?

昨日のLINE Notify 廃止で代替を調査!の続き。
Discordへの具体的投稿方法は外部サービスからDiscordにメッセージを送る(Webhook)ディスコードのwebhookAPIをつかってメッセージを送るだけの簡単なお仕事など各所に詳しいです。
概要としては、

  1. 通知を受け取るサーバ(なければ建てる)でwebhookを取得
  2. そのURLにJSONをPOST

となります。簡単。ただしURL漏洩に注意、でしょうか。

使ってみて気になったこと

LINE Notifyの代替としてDiscordを(主にiOSで)使ってみて、いくつか気になったことがありました。

連続投稿時にひとつの投稿に見えてしまう

これ、どのくらいの短い時間で連続投稿すると区切りがないように見えてしまうのかすらも不明で、LINEから移行してその見た目の違いに面食らいました。
先人たちも悩まれていたようです。

Macのデスクトップ版だとマウスオーバーすることで背景色が変わって投稿時刻が左に見えるので別投稿だとわかるんだけど、iOSだと長押ししないと判別できないし投稿時刻も表示されない(方法はあるかも知れないが見つけられず)。ひとつの投稿に見えること自体も問題だけれど、それぞれの投稿時刻がなにかするまでは隠されているということも決して小さくない問題だと言えます。
間を空けようと投稿の最後に空行を入れてもトリムされてしまいますので、対策としては投稿に区切り線や時刻を含ませるしかないかと思います。
文字を線として使ったときの比較ページもありました。

この「取り消し線を区切り線として使う」のには非常に感心させられました。真似させていただきます。これもMarkdownを理解できるDiscordだからこそ…というか、最初から別々の投稿としてちゃんと表示してくれればこんなことしなくて済むわけで、バッドノウハウと言えなくもないですね…。

アプリアイコンにバッジが付かない(iOS版・Mac版)

他のプラットフォーム版は未確認(付くか付かないかも知らない)ですが、iOS版とMac版では普通のメッセージ受信時にアプリアイコンにバッジ(赤い丸の数字=受信メッセージ数を示す)が付きません。いままでLINE Notifyではこのバッジを頼りにしていた部分も大いにあるので、これが付かないとすると困ったことになります。調べました。
まず設定等に誤りはありませんでした。iOS版ではバナーはちゃんと表示されているし、バッジだけが付かないのです。X(元Twitter)に2年前に投稿されたものに答えがありました。

見つけられたのは、これだけ。
ズバリの回答はなかなか発見できませんでした。皆さんは普通にDiscord使ってるとメンションも来るのでバッジについては気にならない方が多いのかもしれません。
理由はともかくとして、つまりは、webhookで投稿を送るときもメンションにすればいいわけです。
ではどうやってメンションを送るのか?
GASで簡単に作るDiscord Bot
こちらのページではGAS(JavaScript)によるメンション送信について書かれていますが、別の言語でも同じことです。

文中に<@[ユーザID]>を含めるとメンションを飛ばせます
ユーザIDはサーバ内に表示されている名前ではなく18桁の数字です。

メッセージ内にユーザIDを含めるだけでそのユーザに対するメンションになるとのこと。
この「18桁の数字」はどうして取得するか?
Discord bot 開発に必要な ID
DiscordのユーザーIDを取得する方法
こちらのページによると開発者モードをONにしてユーザ名横のメニューからコピーするとのことで、取得できました(ただ、オレが取得したときには19桁の数字でした)。

そして取得した自分のユーザIDをメッセージ内に書き込んでwebhook URLへポストしてみたところ、無事にアイコンにバッジが付きました!!

まとめ

Discordを通知アプリとして使うときの不満点を解消

  • 連続投稿時に区切りが表示されずひとつの投稿に見えてしまう
    > 全てのメッセージの最後に区切りとなる文字列を入れる
    > 空行やスペースは削除されてしまうのでダメ
  • アプリアイコンにバッジが付かない
    > 自分へメンションを送る
    > 送り方はメッセージ内に自分のIDを含めるだけ

こちらからは以上です。

コメント