質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.41%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

588閲覧

ディスコードボットが返信以外にも反応するようにしたい

yohda

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2023/01/04 10:02

編集2023/01/04 10:05

前提

Pythonで写真と入力すると、部屋の写真がラズパイのカメラから送られてくるというディスコードボットを作っています。

実現したいこと

ディスコードのチャンネルで
返信(リプ?)ではなくても「写真」と送信するだけで部屋の写真が送られてくるようにしたい。

発生している問題・エラーメッセージ

返信にしか反応しない。

該当のソースコード

Python

1import picamera 2import discord 3import asyncio 4 5 6client = discord.Client() 7x = 0 8 9#ここをご自身の環境に書き換えてください。 10chid =  省略 11token = "省略" 12#これ以下は書き換えないでください。 13 14 15@client.event 16async def on_ready(): 17 # 起動したらターミナルにログイン通知が表示される 18 print('ログインしました') 19 20@client.event 21async def on_message(message): 22 global x 23 topic = '写真' 24 if message.content == topic: 25 with picamera.PiCamera() as camera: 26 camera.resolution = (1920,1080) 27 camera.capture(str(x)+".jpg") 28 CHANNEL_ID = chid 29 channel = client.get_channel(CHANNEL_ID) 30 await message.channel.send(file=discord.File(str(x)+'.jpg')) 31 x = x + 1 32 33client.run(token)

試したこと;
少し形を変えた程度です。

環境;
Python3

詳細;
ゆっくりディスコ様の
https://electro-disco.com/2020/06/26/%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%ef%bc%8b%e3%82%ab%e3%83%a1%e3%83%a9%e3%81%a7discord%e4%b8%8a%e3%81%a7%e5%8b%95%e3%81%8f%e7%9b%a3%e8%a6%96%e3%82%ab%e3%83%a1%e3%83%a9%e3%82%92%e4%bd%9c%e3%82%8d/
こちらのサイトのソースコードを用いて作りました。

kaon0dayo👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

これでどうでしょうか。23行目を削除し、24行目を変更しました。

py

1import picamera 2import discord 3import asyncio 4 5 6intents = discord.Intents.default() 7intents.message_content = True 8 9client = discord.Client(intents=intents) 10x = 0 11 12#ここをご自身の環境に書き換えてください。 13chid =  省略 14token = "省略" 15#これ以下は書き換えないでください。 16 17 18@client.event 19async def on_ready(): 20 # 起動したらターミナルにログイン通知が表示される 21 print('ログインしました') 22 23@client.event 24async def on_message(message): 25 global x 26 if message.content.startswith('写真'): 27 with picamera.PiCamera() as camera: 28 camera.resolution = (1920,1080) 29 camera.capture(str(x)+".jpg") 30 CHANNEL_ID = chid 31 channel = client.get_channel(CHANNEL_ID) 32 await message.channel.send(file=discord.File(str(x)+'.jpg')) 33 x = x + 1 34 35client.run(token)

投稿2023/01/04 11:16

編集2023/01/04 11:46
kaon0dayo

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohda

2023/01/04 11:25

ありがとうございます。 修正し実行してみましたが、返信にしか反応しませんでした。。 調べてもわからなかったのですがディスコードの仕様なのかもしれません。
kaon0dayo

2023/01/04 11:29

すみません、もう一度修正します 6行目も削除してこのコードを入れて実行してみてください! intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents)
yohda

2023/01/04 12:23

ありがとうございます。 七行目に 'Intents' object has no attribute 'message_content'というエラーが出てきました。 自分でも調べやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.41%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問