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

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

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

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

Q&A

3回答

13178閲覧

Pythonで指定した時間に挨拶をするdiscordのbotを作りたい

iakch_Pr

総合スコア9

Python

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

0グッド

3クリップ

投稿2018/08/08 13:23

作りたいもの

指定した時間に挨拶をするdiscordのbot
現状

pythonでdiscordのbotを作っていて、webサイトを参考にしているのですがbotを自ら発言させる方法がわからなくて困っています。

作ってみたコード

python import discord # インストールした discord.py import time from time import sleep import threading client = discord.Client() # 接続に使用するオブジェクト async def login_status_message(): while True: if time.strftime('%H:%M:%S',time.localtime())=='21:00:00': channel = client.get_channel('チャンネルID') await client.send_message(channel, '勝手に喋るよ') sleep(5) # 起動時に通知してくれる処理 @client.event async def on_ready(): print('ログインしました') @client.event async def on_message(message): if message.content.startswith('挨拶して'): reply = 'こんにちは' await client.send_message(message.channel, reply) # botの接続と起動 # (tokenにはbotアカウントのアクセストークンを入れてください) client.run('トークン')

下段で書いてる「挨拶して」という言葉に対して「こんにちは」と返すプログラムは機能しました。

上段では21時に任意のチャンネルに「勝手に喋るよ」とbotを発言させるつもりだったのですが上手くいきませんでした。

webサイトで出ていた部分を切り取って書いてたりしてので正直これで合っているかもわからないです。

似たようなbotを作ってるサイトなどがあったら是非教えてください。
参考webサイト

リンク内容:Pythonで実用Discord bot(discord.py解説)

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

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

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

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

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

guest

回答3

0

python

1@client.event 2async def on_ready(): 3 while True: 4 if time.strftime('%H:%M:%S',time.localtime())=='21:00:00': 5 channel = client.get_channel('チャンネルID') 6 await client.send_message(channel, '勝手に喋るよ') 7 sleep(5)

このようにしてみてはどうでしょうか?

投稿2019/03/03 04:49

meoto2408

総合スコア52

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

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

tact_0303

2021/11/18 13:03

横から割り込み失礼します 私もこの質問主様と全く同じことをしようとしていて、meoto2408さんのコメントにあるコードを入れてみたらon_ready():の時点でエラーが起きてしまいました... 他力本願になるようで本当に申し訳ないのですが、改善案などありますでしょうか...
guest

0

@client.event async def on_ready(): while True: date = datetime.date.today() timedate = datetime.datetime.now() now = timedate.strftime('%H:%M') print(now) if date.weekday() == 6: if now == '23:50': secondweekfriday = datetime.date.today() + datetime.timedelta(days=6) secondweekfriday=secondweekfriday.strftime("%m/%d")

こちらは曜日と日にちで次の週の土曜日の日数を取得するものですが、もしよければ参考になると嬉しいです

投稿2019/08/07 14:30

ousatu

総合スコア12

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

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

0

Py

1#coding:UTF-8 2import discord 3from discord.ext import tasks 4from datetime import datetime 5 6TOKEN = 'トークン' #トークン 7CHANNEL_ID = 845213484513361950 #チャンネルID 8# 接続に必要なオブジェクトを生成 9client = discord.Client() 10 11print("電源が入りました。") 12 13# 60秒に一回ループ 14@tasks.loop(seconds=60) 15async def loop(): 16 # 現在の時刻 17 now = datetime.now().strftime('%H:%M') 18 if now == '07:00': 19 channel = client.get_channel(CHANNEL_ID) 20 await channel.send('おはよう') 21 22#ループ処理実行 23loop.start() 24# Botの起動とDiscordサーバーへの接続 25client.run('トークン')

どうでしょう?

投稿2021/06/06 01:10

z6JST8rNRMLLl1T

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問