LoginSignup
39
18
個人開発エンジニア応援 - 個人開発の成果や知見を共有しよう!-

discordでtwitterのURLを貼っても埋め込みされなくなったのでtweetの内容を展開してくれるbotを作った

Last updated at Posted at 2023-10-11

重要

discord公式の埋め込みが復活しました。
「/設定 レガシーモード true」
というコマンドで動作モードをレガシーモードに切り替えることでdiscord公式の埋め込み部分のみを削除してComebackTwitterEmbedの埋め込み機能を優先できます。
image.png
また、特定のTwitterアカウントに新規投稿があった場合に自動でdiscordのチャンネルに通知するサービスをComebacktwitterEmbedで展開しました。
詳細は以下の記事をご覧ください
https://qiita.com/_yussy_/items/949af48324b3b600da12

なぜ作ろうと思ったか

twitterの仕様変更によりtwitterのurlをdiscordに投稿しても自動で中身が展開されなくなりました。
vxtwitterなどのurlを変更することで表示させるやつもありますが正直いちいちurl変更してから投稿するのだるいです。
url共有の良さである手軽さが半減してる気がしたのでTwitterのリンクが投稿されたら自動で内容を取得して表示させるbotを作ろうと思いました。
また、スマホから閲覧したときに純正の自動埋め込み機能だと画像が一枚目しか表示されないことがとても不満に思えたのでスマホからでもすべての画像を閲覧できるようにしました。

機能一覧

・Twitterのリンクが投稿されたら自動で内容やリプ、RT、like数などを表示します。
・ボタン操作を行った場合のみユーザーの言語に応じて日本語か英語のどちらかでメッセージが表示されます。
・スマホでは埋め込みに画像を入れても表示されないため添付ファイルとして写真を添付しなおすボタンを実装しました。
・↑とは逆に添付ファイルとして添付された写真を埋め込みに戻すコードも実装されています。
・自動で展開を行ってほしくないユーザーやチャンネル・ロールを指定できます。
・ツイートの中にサーバー管理者が指定した単語が含まれている場合、展開せずにリンクを削除する設定を追加できます。
・リンクを投稿した人かメッセージの管理権限がある人が赤色のボタンを押すことで埋め込みを削除することが可能です。
・tweet内の言語と利用者の言語に違いがある場合、tweetの中身を翻訳できるボタンが追加されます
・リンクだけ貼った時は、その原文を消して展開だけを残す設定をsettingsコマンドで指定できます
・<ツイートURL>もしくは||ツイートURL||の形式で貼ったときは展開しないようになりました

動作イメージ

image.png
image.png
image.png
image.png
image.png

サブインスタンスの注意点

・サブインスタンスはメインインスタンスが認証されるまでの間のつなぎとして利用可能です。
・メインインスタンスが認証された後はサブインスタンスはオフラインになります。

導入はここから...!

discord-invite-link(メインインスタンス/導入制限なし)
top.gg(メインインスタンス/導入制限なし)

公式サポートサーバー

サポートサーバーでしか公開していないインスタンスもあるほか、近日中にメインインスタンスの移行を控えているため加入を強く勧めます
公式サポートサーバー

--追記履歴--

--2023/11/14 16:45追記--
メインインスタンスが認証を受けたため、サブインスタンスの導入リンクを削除しました。
また、移行についての案内を追記しました。
--2023/11/09 13:20追記--
サブインスタンス8の導入鯖数がひっ迫しているため、サブインスタンス9の招待リンクを公開します
--2023/11/07 09:30追記--
サブインスタンス7の導入鯖数が11/06の夜間に250に達していたためサブインスタンス8を作成しました。
招待リンクを公開します
--2023/11/04 14:10追記--
サブインスタンス6の導入鯖数がひっ迫しているため、サブインスタンス7の招待リンクを公開します。
追記時点ではまだ少しだけサブインスタンス6に空きがあります。
--2023/11/02 08:25追記--
サブインスタンス5の導入鯖数がひっ迫しているため、サブインスタンス6の招待リンクを公開します
--2023/10/30 09:20追記--
サブインスタンス4の導入鯖数がひっ迫しているのでサブインスタンス5の招待リンクを公開します。
--2023/10/27 09:35追記--
サブインスタンス3の導入鯖数が250に到達したためサブインスタンス4の招待リンクを公開します。
また、サポートサーバーで要望があった機能や仕様変更に関して追記を行います
--2023/10/23 12:00追記--
サブインスタンス2の導入鯖数がひっ迫してきているため、サブインスタンス3の招待リンクを公開します。また、サポートサーバーで要望があった新機能について追記を行います。
--2023/10/19 14:20追記--
サブインスタンス1の導入鯖数が250に到達する寸前のため、サブインスタンス2の招待リンクを公開します
--2023/10/18 18:10追記--
サブインスタンス1の導入鯖数が200に到達しました
もしサブインスタンス1の導入鯖数が250に到達しそうな場合はサブインスタンス2を作成し、リンクをここに添付します。
--2023/10/16 11:00追記--
サブインスタンス1の導入鯖数が75を超えましたがメインインスタンスと同様サーバー上限は250に引き上げられました。
--2023/10/15 17:50追記--
サブインスタンス1の導入鯖数は追記時点では49サーバーとなっています。
公式サポートサーバーへの招待リンクを追記しました
--2023/10/14 16:40追記--
メインインスタンスの導入鯖数が250に到達しました。
サブインスタンスの導入リンクを追記します。
--2023/10/13 21:30追記--
message intentsの承認が下りました。また、認証を受けられるまでの間導入サーバー数上限が250まで増えるという連絡を受けました。
追記時点では186サーバーに導入されており、このペースが続けば数日以内に250に達する見込みです。
予備のBOTインスタンスはメインのインスタンスの導入鯖数が220を超えたら公開を行います。
--2023/10/12 21:00追記--
私が想像していたよりもはるかに速い速度でBOTの導入サーバー数が増えています。
10/12 08:40時点では導入サーバー数は32だったのに対し、追記時点では94になっています。
このBOTにはmessage intentsと呼ばれるユーザーが送った文字列を取得する権限が必要不可欠であり、それは私が本人確認をしてBOTが認証を受け、かつdiscordから承認を受けないと最大導入可能サーバー数が100に制限されてしまいます。
ですが、導入サーバー数の伸びがあまりにも急すぎるため認証の申請を出すことは現時点ではできないとdiscord側から連絡がありました。
また、message intentsの許可の申請を行いましたがまだ審査中で結果が不透明な状態がつづいています。
もしサーバへの導入に制限がかかってしまった場合に備えて予備のBOTインスタンスを展開したいと考えています。
予備のBOTインスタンスはメインのBOTが承認を受けた際に削除する前提でホストするつもりです。
準備ができ次第ここに導入用のリンクを記載します。しばらくお待ちください。

39
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
18