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

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

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

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

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

Q&A

解決済

2回答

1178閲覧

discord.py 特定のユーザーに入力したテキストを送信するボットを作ろうとしています。

hurakiri

総合スコア16

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python

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

0グッド

0クリップ

投稿2022/04/25 19:22

編集2022/04/26 09:44

discord.pyで、チャンネルに打ち込んだ内容を特定のユーザーのDMに送る機能をつけようとしているのですが、下記のようなエラーが起こってしまいます。

python

1@bot.event 2async def on_message(message): 3 def check(msg): 4 return msg.author == message.author 5 6 if message.content == (".DMsend"): 7 await message.channel.send("送信したい内容を入力") 8 9 wait_message = await bot.wait_for("message", check=check) 10 11 await message.channel.send("以下の内容を送信しました。") 12 13 user = bot.get_user(DMuser) 14 await user.send(wait_message.content) 15 await message.channel.send(wait_message.content)

error

1Traceback (most recent call last): 2 File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event 3 await coro(*args, **kwargs) 4 File "パイソンファイルの場所.py", line 91, in on_message 5 await user.send("wait_message.content") 6AttributeError: 'NoneType' object has no attribute 'send'

DMuserの変数を用意してその中に自分のユーザーIDを代入しています。
以下のようにコピーしているのですが...

イメージ説明

参考にしたものは以下です。
【Discord.py】書き込まれたメッセージの取得方法
特定のユーザーにDMを送りたい
※intentsの許可は行っております。

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

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

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

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

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

melian

2022/04/25 23:39

正しくは startswith です。
hurakiri

2022/04/26 09:50

startswithにしたところ、startswithまではエラー吐かず動きました。ありがとうございます。
guest

回答2

0

自己解決

自己解決しました。
user = bot.get_user(userID)でuserIDを取得しメッセージを送ろうとし、エラーが起きましたが
user = bot.fetch_user(userID)にすることにより問題なく動作しました。

投稿2022/04/26 10:00

hurakiri

総合スコア16

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

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

0

AttributeError: 'str' object has no attribute 'startwith'

文字列のオブジェクトには 'startwith' というアトリビュートはありません、とおっしゃってます。
これをどうにかしましょう。

そして、エラーメッセージをきちんと読んで、理解しましょう

投稿2022/04/25 22:01

y_waiwai

総合スコア87747

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

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

hurakiri

2022/04/26 09:47 編集

すみません、startwithは本当に気づかなく、調べたときにstartwithも存在していたようでして混在してしまっていました。故に自分で解決できなく、質問させていただきました。sのつけ忘れは本当に気づいてませんでした。申し訳ないです。 startswithは解決できたのですが、下のエラーは解決できていません。こちらはどう直せばよいのでしょうか? user.sendのエラーは自分でできる限り調べましたが解決できませんでした。 user.sendのエラーの場合、userに割り当てられているDMuserの変数の中身が間違っているため起こっていると思うのですが、確認してもきちんとユーザーIDを割り当てています。また、IDのコピー方法は最下部の画像の通り行っておりますので間違っていないと思います。 どうかご教授お願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問