このBotの主な機能:
支援してくれる方々とやり取りする際、いつもその支払いがしっかりと完了しているのか確認するのが面倒でした。Tebexには Tebex Bot をつかってロールを付与することができる機能が実装されていますが、これにはいくつか問題があります:
ロールを付与されるには先にDiscordサーバーに入っておく必要がある
お金を払ってからサーバーに入った場合、/claimをする必要がある
これを解決するためにDiscord Botを開発しました。
/verify [Transaction ID]
決済をしたときにTebexから自動的に送られてくるTransaction IDを使って支払い情報を照会できます。メールに自動的に送られてくるので、支援者に頼んで送ってもらってください。
このコマンドで照会できるもの:
支払いの状態 (complete / incomplete)
/search [Tebex Username]
Tebexユーザーネームから情報を照会できます
このコマンドで照会できるもの:
商品の一覧を出力します
/createurl [package ID] [Tebex Username]
決済URLを作ります。このURLはクリックすると自動的にそのユーザーの買い物かごに商品をいれてくれます。買い方がわからないときに有用です。
/recentpayments
直近25件の支払い情報を照会します
このリポジトリはBotのソースコードで、ここからデプロイしないとBotとして使うことができません。このBotをホストする方法としては2つあります
IaaS(such as Heroku, Railway) のレンタル鯖を使ってホストする(おすすめ)
これはBotで常時オンラインにしておくことが望ましいので、FiveMと同じサーバーでホストすることはお勧めできません。私は個人的にIaaSである Railway.app を使用しています。このコードはIaaSを使うこと前提で書いてあるので、Dockerfileから手軽にデプロイできて便利です。
Discord Developer Portal でボットを作り、鯖に招待しましょう。
この時に message intent と applications.commands を有効にする必要があります。
Botを作ったあと、Botタブから
Message Content Intentを有効にしましょう
OAuth2タブに行き、URL Generatorを開きます。権限の設定をします。
2. 管理者のロールIDを取得
サーバーの管理画面から、Discordの開発者モードをONにした状態でロールIDを取得します。普段お客様の対応を担当している人のロールIDもお忘れなく。
3. tebex シークレットキーを取得
下記サイトを参考に、シークレットキーを生成してください。
https://docs.tebex.io/creators/faq
✔ これでデプロイの準備が整いました
リポジトリをフォークして (またはダウンロードして) .envファイルを編集してください。これを公開リポジトリとしてフォークして編集するとDiscordからトークンを無効化されます。Railwayの"Service variables"を使うか、非公開のリポジトリとしてフォークしてください。
この後、ローカルでホストするかIaaSでホストするか選んでください。
リポジトリから自動的にデプロイできるようにしてあります。Dockerfileを使用してデプロイをしてください。使うIaaSによりますが、勝手に全て作業をしてくれるはずです。
pyinstallerを使ってコンパイルをしてください
https://pyinstaller.org/en/stable/
Done!
このBotはコマンドが使用されたときにHTTPリクエストをTebex APIに送ります。その結果をembedメッセージとして返します。APIはJson形式のデータを返してくれますが、それを読みやすい形にして提供します。
My discord: https://discord.gg/SB3WMzbDvF
Tebex Plugin API: https://docs.tebex.io/plugin
You can do whatever you want with this. Credits are always appreciated tho.