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

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

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

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

Python

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

Q&A

解決済

1回答

1112閲覧

Discord.pyで作っていたグローバルチャットが突然落ちてしまいました.....

z6JST8rNRMLLl1T

総合スコア19

Discord

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

Python

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

0グッド

0クリップ

投稿2022/01/16 01:59

編集2022/01/16 02:08

経緯

Replitでグローバルチャットを作成してたのですが、
ついさっき突然ダウンして復旧しようとしたのですが、復旧が私ではできなかったので質問をします。

ソースコード

py

1import os 2import discord 3from server import keep_alive 4 5 6# .envからTOKENを取ってくる 7TOKEN = os.getenv("TOKEN") 8# 接続するためのオブジェクト 9client = discord.Client() 10 11global_channel_name = "(私の方のプログラムでは入力済みです)" ## #設定したいチャンネル名を入力 12 13 14@client.event 15async def on_ready(): 16 print("起動!") 17 18 await client.change_presence(activity=discord.Game( 19 name= 20 f"グローバルチャットが起動しています。\nお使いください。\n {len(client.guilds)}サーバーに導入されています。")) 21 22 23@client.event 24async def on_message(message): 25 26 if message.channel.name == global_channel_name: #グローバルチャットにメッセージが来たとき 27 #メッセージ受信部 28 if message.author.bot: #BOTの場合は何もせず終了 29 return 30 #メッセージ送信部 31 for channel in client.get_all_channels(): #BOTが所属する全てのチャンネルをループ 32 if channel.name == global_channel_name: #グローバルチャット用のチャンネルが見つかったとき 33 if channel == message.channel: #発言したチャンネルには送らない 34 continue 35 36 embed = discord.Embed( 37 description=message.content, 38 color=0x9B95C9) #埋め込みの説明に、メッセージを挿入し、埋め込みのカラーを紫`#9B95C9`に設定 39 embed.set_author( 40 name="{}#{}".format(message.author.name, 41 message.author.discriminator), 42 icon_url= 43 "https://media.discordapp.net/avatars/{}/{}.png?size=1024". 44 format(message.author.id, message.author.avatar)) 45 embed.set_footer( 46 text="{} / mID:{}".format(message.guild.name, message.id), 47 icon_url= 48 "https://media.discordapp.net/icons/{}/{}.png?size=1024". 49 format(message.guild.id, message.guild.icon)) 50 if message.attachments != []: #添付ファイルが存在するとき 51 embed.set_image(url=message.attachments[0].url) 52 53 if message.reference: #返信メッセージであるとき 54 reference_msg = await message.channel.fetch_message( 55 message.reference.message_id) #メッセージIDから、元のメッセージを取得 56 if reference_msg.embeds and reference_msg.author == client.user: #返信の元のメッセージが、埋め込みメッセージかつ、このBOTが送信したメッセージのとき→グローバルチャットの他のサーバーからのメッセージと判断 57 reference_message_content = reference_msg.embeds[ 58 0].description #メッセージの内容を埋め込みから取得 59 reference_message_author = reference_msg.embeds[ 60 0].author.name #メッセージのユーザーを埋め込みから取得 61 elif reference_msg.author != client.user: #返信の元のメッセージが、このBOTが送信したメッセージでは無い時→同じチャンネルのメッセージと判断 62 reference_message_content = reference_msg.content #メッセージの内容を取得 63 reference_message_author = reference_msg.author.name + '#' + reference_msg.author.discriminator #メッセージのユーザーを取得 64 reference_content = "" 65 for string in reference_message_content.splitlines( 66 ): #埋め込みのメッセージを行で分割してループ 67 reference_content += "> " + string + "\n" #各行の先頭に`> `をつけて結合 68 reference_value = "**@{}**\n{}".format( 69 reference_message_author, 70 reference_content) #返信メッセージを生成 71 embed.add_field(name='返信しました', 72 value=reference_value, 73 inline=True) #埋め込みに返信メッセージを追加 74 75 await channel.send(embed=embed) #メッセージを送信 76 await message.add_reaction('✅') #リアクションを送信 77 78 79# 新しい人が入ってきたとき 80@client.event 81async def on_member_join(member): 82 # guildはdiscord内のserverのこと 83 for channel in member.guild.channels: 84 # generalチャンネルでの自己紹介 85 if str(channel) == "general": 86 await channel.send_message(f"""初めまして {member.mention}さん""") 87 88 89# ウェブサーバーを起動する 90keep_alive() 91 92# Discordへ接続 93client.run("トークン")

py

1from flask import Flask 2from threading import Thread 3 4app = Flask("") 5 6@app.route("/") 7def main(): 8 return "alive!" 9 10def run(): 11 app.run("0.0.0.0", port=9981) 12 13def keep_alive(): 14 t = Thread(target=run) 15 t.start()

エラー

py

1* Serving Flask app '' (lazy loading) 2 * Environment: production 3 WARNING: This is a development server. Do not use it in a production deployment. 4 Use a production WSGI server instead. 5 * Debug mode: off 6 * Running on all addresses. 7 WARNING: This is a development server. Do not use it in a production deployment. 8 * Running on http://172.18.0.120:9981/ (Press CTRL+C to quit) 9Traceback (most recent call last): 10 File "main.py", line 93, in <module> 11 client.run("トークン") 12 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 723, in run 13 return future.result() 14 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 702, in runner 15 await self.start(*args, **kwargs) 16 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 665, in start 17 await self.login(*args, bot=bot) 18 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 511, in login 19 await self.http.static_login(token.strip(), bot=bot) 20 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/http.py", line 300, in static_login 21 data = await self.request(Route('GET', '/users/@me')) 22 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/http.py", line 216, in request 23 raise HTTPException(r, data) 24discord.errors.HTTPException: 429 Too Many Requests (error code: 0): <!DOCTYPE html> 25<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]--> 26<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]--> 27<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]--> 28<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]--> 29<head> 30<title>Access denied | discord.com used Cloudflare to restrict access</title> 31<meta charset="UTF-8" /> 32<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 33<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" /> 34<meta name="robots" content="noindex, nofollow" /> 35<meta name="viewport" content="width=device-width,initial-scale=1" /> 36<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" type="text/css" media="screen,projection" /> 37 38 39<script defer src="https://api.radar.cloudflare.com/beacon.js"></script> 40</head> 41<body> 42 <div id="cf-wrapper"> 43 <div class="cf-alert cf-alert-error cf-cookie-error hidden" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div> 44 <div id="cf-error-details" class="p-0"> 45 <header class="mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased"> 46 <h1 class="inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight"> 47 <span data-translate="error">Error</span> 48 <span>1015</span> 49 </h1> 50 <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">Ray ID: 6ce3c9059b9e6832 &bull;</span> 51 <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">2022-01-16 02:06:33 UTC</span> 52 <h2 class="text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light">You are being rate limited</h2> 53 </header> 54 55 <section class="w-240 lg:w-full mx-auto mb-8 lg:px-8"> 56 <div id="what-happened-section" class="w-1/2 md:w-full"> 57 <h2 class="text-3xl leading-tight font-normal mb-4 text-black-dark antialiased" data-translate="what_happened">What happened?</h2> 58 <p>The owner of this website (discord.com) has banned you temporarily from accessing this website.</p> 59 60 </div> 61 62 63 </section> 64 65 <div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300"> 66 <p class="text-13"> 67 <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">6ce3c9059b9e6832</strong></span> 68 <span class="cf-footer-separator sm:hidden">&bull;</span> 69 <span class="cf-footer-item sm:block sm:mb-1"><span>Your IP</span>: 34.127.75.94</span> 70 <span class="cf-footer-separator sm:hidden">&bull;</span> 71 <span class="cf-footer-item sm:block sm:mb-1"><span>Performance &amp; security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a></span> 72 73 </p> 74</div><!-- /.error-footer --> 75 76 77 </div><!-- /#cf-error-details --> 78 </div><!-- /#cf-wrapper --> 79 80 <script type="text/javascript"> 81 window._cf_translation = {}; 82 83 84</script> 85 86</body> 87</html> 88

補足

①これのほかにdisocrd.jsを動かしています。
②常時起動させてあげるためにuptimerobotを利用しています。

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

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

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

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

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

guest

回答1

0

自己解決

なぜか気づいたときには動作していました....

投稿2022/01/27 06:02

z6JST8rNRMLLl1T

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問