Python、Hikari、Lightbulb、MongoDBを使用してDiscordボットを構築する

この記事では、Python、MongoDB、Hikari、Lightbulbを使用して、Discordボットを構築する方法について説明します。

Discordは、大勢の人々がコミュニティ形式でやり取りできるソーシャルメディアプラットフォームです。現在、NFTプロジェクトにとって最も調和のとれたプラットフォームであり、コミュニティ志向が強いためです。さらに、このプラットフォームは、自由なコミュニケーション機能とCryptoウォレット(Collabland、Metamaskなど)との統合スペースによって、NFTのトレーディングやブランドNFTマーケティングを促進します。そして、プライベートコミュニティでのNFTゲーティングも可能です。

この記事では、Python、MongoDB、Hikari、Lightbulbを使用して、Discordボットを構築する方法について説明します。

目次:Python、Hikari、Lightbulb、MongoDBを使用してDiscordボットを構築する

Discordボットアカウント:Discordアプリケーション、トークン、権限オプション、認証リンク

まず最初に、Discordボットアカウントを作成してアクセストークンを取得し、Discordコミュニケーションでいくつかの権限を設定する必要があります。

ステップ1:Discordデベロッパーポータルに移動して、Discordアカウントでログインします

新しいアプリケーションを作成するには、ここをクリックしてください。

ステップ2:新しいボットを追加し、権限オプションを選択して、Discordアカウントを生成されたURLを使用して認証リンクで統合します

参考用オプション:

スコープ: ボット、applications.commands

権限: 管理

Hikariを使用したユーザーメッセージの受信と応答

第二に、ユーザーからのメッセージに基づいて自動返信を作成することです。1対1の自動返信メッセージの戦略も重要ですが、別の記事でさらに共有します。この記事では、この自動会話のコアフレームワークを共有します。

ステップ1:Hikari、Lightbulbモジュールをインストールしてインポートする(pip3 install Hikari)

import hikari

import lightbulb

ステップ2:LightBulbを使用してDiscordボットに接続する

統合では、ボットトークンはdiscordアカウントで使用しているボットを識別するためのユニークなキーです。さらに、システムにすべてのメッセージを処理できるようにするインテントを設定する必要があります

bot = lightbulb.BotApp(token="ボットアカウントで生成されたボットトークン", intents=hikari.Intents.ALL_MESSAGES, prefix="!")

接続されている場合、ライブボットアカウントは、他のユーザーと自分自身と同様に、右側に表示されます。

ステップ3:イベントによる自動返信の設定

@bot.listen()は、ユーザーからのメッセージをキャプチャするためのメソッドです。基本的に、メッセージをキャプチャする2つの場所があります。1つは、チャンネルやコミュニティなどのパブリックな変換ギルドからのメッセージであり、もう1つはDMである。

以下は、MongoDBとHikariを使ったDMでの自動返信の構築のためのコードサンプルです。

@bot.listen(hikari.DMMessageCreateEvent)

async def nftMessage(event):

print(event)

if event.is_human:

if myCollection.find_one({'messageA': 'id123'})['greetingMessage'] in event.content.strip().lower():

return await event.message.respond(f'こんにちは! 質問についてもう少し教えてください。')

elif myCollection.find_one({'messageA': 'id1234'})['greetingMessage'] in event.content.strip().lower():

return await event.message.respond(f'こんにちは! お元気ですか?')

else:

return await event.message.respond(f'今は何かに縛られています。できるだけ早く戻ります。')

スラッシュキーワード&ナビゲータのリストを作成する

スラッシュキーワードは、質問をすることなく特定の情報を得るための特定の単語です。ナビゲータのように見えます。たとえば、NFTの取引コミュニティを実行している場合、一連のNFT名キーワードをリストアップし、ユーザーは会話ボックスでこれらのNFTに関するすべての情報を自動的に取得できます。

このセクションでは、lightbulbコマンドを使用する必要があります。以下は、1つのスラッシュキーワードFYIを作成するコードサンプルです。

@bot.command

@lightbulb.command("nft", "最新のNFTコレクションを返します")

@lightbulb.implements(lightbulb.PrefixCommand, lightbulb.SlashCommand)

async def nftS(ctx: lightbulb.Context):

return await ctx.respond(f'これが私たちの最新のNFTコレクションです。チェックしてください: [https://testnets.opensea.io/assets/goerli/0x8eeb73f75e6d80a6a21302d1ec36d0ead0ceb295/0](https://testnets.opensea.io/assets/goerli/0x8eeb73f75e6d80a6a21302d1ec36d0ead0ceb295/0)')

bot.run()

各スラッシュコマンドには名前と説明を含めることができます。また、応答メッセージをカスタマイズすることもできます。以下はEasy2Digital NFTのサンプルです。

Python、Hikari、Lightbulb、MongoDBを使用したDiscord Botの完全なPythonスクリプト

Python Tutorial 70 – Build a Discord Bot Using Python、Hikari、Lightbulb、MongoDBに興味がある場合は、「Chapter 70」というメッセージを追加して、ニュースレターに登録してください。直ちにスクリプトをメールボックスに送信します。

Python Tutorial 70 – Build a Discord Bot Using Python、Hikari、Lightbulb、MongoDBをお楽しみいただければ幸いです。もしそうであれば、以下のリストにあることのいずれかを行って、私たちのチャンネルを支援してください。

よくある質問:

Q1: Hikariの製品はどのように購入できますか?

A: Hikariの製品は公式ウェブサイトや正規販売代理店を通じて購入することができます。

Q2: Hikariの製品はどのような保証がありますか?

A: Hikariの製品には製造欠陥に対する1年間の保証が付いています。

Q3: Hikariの製品はどのようにメンテナンスすれば良いですか?

A: Hikariの製品は定期的なクリーニングと適切な使用方法によるメンテナンスが必要です。詳しい手順は取扱説明書をご確認ください。

Q4: Hikariの製品はどのように充電しますか?

A: Hikariの製品はUSBケーブルを使用して充電することができます。

Q5: Hikariの製品はどのような機能がありますか?

A: Hikariの製品には日本語と英語の音声アシスタント、心拍数モニター、ステップカウンターなどの機能があります。

Q6: Hikariの製品は防水ですか?

A: Hikariの製品はIP67防水規格に準拠しており、30分間の水深1メートルまでの水中使用が可能です。

Q7: Hikariの製品はどのようにデータを同期しますか?

A: Hikariの製品はBluetooth接続を使用してスマートフォンとデータを同期します。専用のアプリをインストールして使用してください。

Q8: Hikariの製品はどのように睡眠をトラッキングしますか?

A: Hikariの製品は睡眠トラッキング機能を備えており、睡眠の質、時間、深さなどを計測します。

Q9: Hikariの製品はどのように通知を受け取りますか?

A: Hikariの製品はスマートフォンからの通知をバイブレーションやディスプレイ表示で受け取ることができます。

Q10: Hikariの製品はどのようにバッテリー寿命を延ばせますか?

A: Hikariの製品のバッテリー寿命を延ばすためには、明るさや通知設定を最適化し、適切な充電サイクルを守ることが重要です。