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

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

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

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

Q&A

1回答

1609閲覧

DMってどうやるんですか?

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

1クリップ

投稿2021/05/25 12:05

編集2021/05/27 10:16

DMってどうやるんですか?わかんないんです...

サイトをあさって見つけたプログラムなんですが、エラーが出てしまいます。

エラー内容

error
イメージ説明

イメージ説明

出典元サイト
https://qiita.com/o-chang/items/3b868bf1b8882cadbe5d#%E5%AE%9F%E8%A3%85

Python

1# コマンド拡張機能 2from discord.ext import commands 3# discordのAPI 4import discord 5# DmCogの取り込み(./cogsにファイルを置いています) 6import cogs.DmCog as DmCog 7 8# コマンドプレフィックスを設定 9bot = commands.Bot(command_prefix='$') 10 11# bot起動時に発生するイベント 12@bot.event 13async def on_ready(): 14 print('-----') 15 print(bot.user.name) 16 print(bot.user.id) 17 print('-----') 18 text = f'Logged on as {bot.user}!' 19 GameCog.setup(bot) 20 channel = bot.get_channel(チャンネルID(数値)) 21 await channel.send('start success') 22 23async def on_message(message): 24 # botの発言は無視する(無限ループ回避) 25 if message.author.bot: 26 return 27 elif message.content == '': 28 await message.author.send('「$hello」 と送信してね!') 29 30# botの起動 31bot.run('botのアクセストークン(文字列)') 32 33 34

Python

1# exitの実装 2import sys 3 4# コグクラス 5class DmCog(commands.Cog): 6 # DmCogクラスのコンストラクタ。Botを受取り、インスタンス変数として保持。 7 def __init__(self, bot): 8 self.bot = bot 9 10 # 起動確認のコマンド 11 @commands.command() 12 async def test(self, message): 13 await message.channel.send('test ok') 14 15 # 終了コマンド 16 @commands.command() 17 async def shutdown(self, message): 18 await message.channel.send("shutdown bot") 19 sys.exit() 20 21 # 簡単な応答をする 22 @commands.command() 23 async def hello(self, message): 24 if (type(message.channel) == discord.DMChannel) and (client.user == message.channel.me): 25 await message.author.send("World!") 26 else: 27 await message.channel.send("DMで送信してね!") 28 29# Bot本体側からコグを読み込む際に呼び出される関数。メンバ関数ではないです。 30def setup(bot): 31 # cogクラスにbotを渡してインスタンス化 32 bot.add_cog(DmCog(bot))

使用しているソフトなど

Python3.5
ATOM

どうすればよいですか?

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

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

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

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

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

coolwind0202

2021/05/25 12:31

ここはコーディング依頼をする場所ではないので、具体的に何に困っているのかを提示してください
coolwind0202

2021/05/25 12:33

また全員にDMを送る、という文章の「全員」の定義が曖昧です。 ギルドのメンバー全員でしょうか。そうであれば、そのギルドはどのように決定されているのでしょうか。 for文について教える、というのも、何をお教えしたら良いでしょう?
K_3578

2021/05/26 00:45

>誰か早く教えてくれませんか? 速度を求めるなら然るべき場所で金払って依頼したら良い。 ここは無料のQAサイトであって質問者の作業を無料で代行してくれるサイトじゃない。
退会済みユーザー

退会済みユーザー

2021/05/26 07:04

有難うございます。修正しておきます
K_3578

2021/05/26 08:20

全く編集されてませんが 修正しておきます、とは・・・。
退会済みユーザー

退会済みユーザー

2021/05/26 11:55

ごめんなさい。今修正しました。さらに何かあれば教えてくださるとうれしいです
coolwind0202

2021/05/26 13:43

どのサイトを漁ったのでしょうか。出典を示してください。エラーを見たところ、サイトの内容通りに設定がなされていないが故のエラーに思えます。 ① また、一枚目の画像のエラーに関してはこのコード内に問題があるとは思えないのですが、このコードは正確にコピーペーストされているのでしょうか? ② 二枚目のエラーはフォルダの構造に問題があるように見えますが、コメント通りにcogsフォルダ内に DmCog.py を置いているでしょうか?
退会済みユーザー

退会済みユーザー

2021/05/27 10:12

Ogsってどこにあるんですか?
coolwind0202

2021/05/27 13:39

どこにあるんですか、と言われたら、どこにもない、と答えますが・・・。 discordbot.pyファイルに # DmCogの取り込み(./cogsにファイルを置いています) という記述があります、私が言っているのはこれのことです 元記事の筆者の意図を考えると、 discordbot.py ファイルと同じ階層に cogs フォルダを作成するのだと思います 他の回答者さんも仰られていますが、コグシステムを無理に使う必要はありません bot commands framework は要求される知識が広範に及びます いま付いている回答が適切なので、これ以上質問内容に対する修正依頼は控えますね
退会済みユーザー

退会済みユーザー

2021/05/28 09:26

追加でいいでしょうか.....? $ python3 -m pip install -U discord.py ってどこで実行させるんですか?(Atom,cmdで実行するんですか?)
coolwind0202

2021/05/28 11:23

cmd(コマンドライン)で実行しますよ。 もっとも、すでに discord.py 1.7.2 がインストールされているようなので、discord.pyのインストール自体に問題はないと思いますが・・・。
退会済みユーザー

退会済みユーザー

2021/05/28 11:40

実行できませんでした....
coolwind0202

2021/05/28 12:01

できませんでした、とは? 抽象的すぎるので、具体的にどういう表示がなされて実行できなかったのかを書いてください。
guest

回答1

0

まずはじめに一つだけ。似たトピックのマルチポストは今後やめましょう。

とりあえず、Cogsをご存知でないなら無理に使う必要はないかと思います。
こんな感じで動くはずです(Python3.9.4、discord.py 1.7.2で動作確認済です)

python3

1import discord 2 3TOKEN = "" # トークンキー 4 5client = discord.Client() 6 7 8@client.event 9async def on_message(message): 10 # メッセージ送信者がBotだった場合は無視する 11 if message.author.bot: 12 return None 13 14 # DMの送信 15 if "DMを送信" in message.content: 16 # 「DMを送信」という文字列が含まれていたら 17 await message.author.send("こんにちは!") # メッセージの送信者にDMを送信する 18 19 # DMの受信 20 if (type(message.channel) == discord.DMChannel) and ( 21 client.user == message.channel.me 22 ): 23 await message.author.send("DMを正常に受信しました!内容は「{}」です!".format(message.content)) 24 25 26client.run(TOKEN) 27

投稿2021/05/27 11:27

編集2021/05/27 13:50
goma1661

総合スコア167

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

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

退会済みユーザー

退会済みユーザー

2021/05/27 11:33

動作しませんでした。Cogsインストール出来ました。
goma1661

2021/05/27 11:34

「インストール」の意味があまり良く分かりません。Discord.pyもとから入っているはずです。
goma1661

2021/05/27 11:46

失礼しました message.author.send("こんにちは!") は正しくは await message.author.send("こんにちは!") です これで動作するはずです
退会済みユーザー

退会済みユーザー

2021/05/27 12:27

動作しませんでした。Cogsは最初から入っていませんでした。なので、追加ででダウンロードをしたんです。
退会済みユーザー

退会済みユーザー

2021/05/27 12:29

Passはに入力したほうがいいのですか?
goma1661

2021/05/27 12:34 編集

passの部分に特に追記する必要はありません。 また、私の環境ではこれで受信・送信ともに正常に動作しています。どんなエラーメッセージが出ているか(または何も起きない)など状況を教えていただきたいです。
退会済みユーザー

退会済みユーザー

2021/05/27 12:43

Process returned 0 (0x0) execution time : 0.398 s 続行するには何かキーを押してください . . . って出ていてエラーはないです
goma1661

2021/05/27 13:00

こちらでは再現できませんでした。コマンドプロンプトかPowerShellで「 C:\Users\user\AppData\Local\Programs\Python\python39\python.exe -m pip freeze」を実行した結果を見せてもらえませんか?
退会済みユーザー

退会済みユーザー

2021/05/27 13:03

aiohttp==3.7.4.post0 async-timeout==3.0.1 attrs==21.2.0 cffi==1.14.5 chardet==4.0.0 Cogs==0.4.4 discord.py==1.7.2 idna==3.1 multidict==5.1.0 pycparser==2.20 PyNaCl==1.4.0 PyYAML==5.4.1 six==1.16.0 typing-extensions==3.10.0.0 yarl==1.6.3 youtube-dl==2021.5.16
退会済みユーザー

退会済みユーザー

2021/05/27 13:03

ですー
goma1661

2021/05/27 13:52

Coolwindさんも仰っていますが、あなたがインストールしたCogsはdiscord.pyとは一切関係ない別のものです。元の記事のimport部分はpipからインストールするCogsモジュールを読み込むのではなく、cogsという名前のサブディレクトリの中にDmCog.pyというファイルを作成することで自分で作成したモジュールを読み込むものです。  動かない問題の方については本当に申し訳ありませんがこれ以上私に分かることはなさそうです。力不足ですみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問