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

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

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

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

Python

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

解決済

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

z6JST8rNRMLLl1T
z6JST8rNRMLLl1T

総合スコア19

Discord

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

Python

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

1回答

0評価

0クリップ

324閲覧

投稿2022/01/16 01:59

編集2022/01/27 15:02

経緯

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

ソースコード

py

import os import discord from server import keep_alive # .envからTOKENを取ってくる TOKEN = os.getenv("TOKEN") # 接続するためのオブジェクト client = discord.Client() global_channel_name = "(私の方のプログラムでは入力済みです)" ## #設定したいチャンネル名を入力 @client.event async def on_ready(): print("起動!") await client.change_presence(activity=discord.Game( name= f"グローバルチャットが起動しています。\nお使いください。\n {len(client.guilds)}サーバーに導入されています。")) @client.event async def on_message(message): if message.channel.name == global_channel_name: #グローバルチャットにメッセージが来たとき #メッセージ受信部 if message.author.bot: #BOTの場合は何もせず終了 return #メッセージ送信部 for channel in client.get_all_channels(): #BOTが所属する全てのチャンネルをループ if channel.name == global_channel_name: #グローバルチャット用のチャンネルが見つかったとき if channel == message.channel: #発言したチャンネルには送らない continue embed = discord.Embed( description=message.content, color=0x9B95C9) #埋め込みの説明に、メッセージを挿入し、埋め込みのカラーを紫`#9B95C9`に設定 embed.set_author( name="{}#{}".format(message.author.name, message.author.discriminator), icon_url= "https://media.discordapp.net/avatars/{}/{}.png?size=1024". format(message.author.id, message.author.avatar)) embed.set_footer( text="{} / mID:{}".format(message.guild.name, message.id), icon_url= "https://media.discordapp.net/icons/{}/{}.png?size=1024". format(message.guild.id, message.guild.icon)) if message.attachments != []: #添付ファイルが存在するとき embed.set_image(url=message.attachments[0].url) if message.reference: #返信メッセージであるとき reference_msg = await message.channel.fetch_message( message.reference.message_id) #メッセージIDから、元のメッセージを取得 if reference_msg.embeds and reference_msg.author == client.user: #返信の元のメッセージが、埋め込みメッセージかつ、このBOTが送信したメッセージのとき→グローバルチャットの他のサーバーからのメッセージと判断 reference_message_content = reference_msg.embeds[ 0].description #メッセージの内容を埋め込みから取得 reference_message_author = reference_msg.embeds[ 0].author.name #メッセージのユーザーを埋め込みから取得 elif reference_msg.author != client.user: #返信の元のメッセージが、このBOTが送信したメッセージでは無い時→同じチャンネルのメッセージと判断 reference_message_content = reference_msg.content #メッセージの内容を取得 reference_message_author = reference_msg.author.name + '#' + reference_msg.author.discriminator #メッセージのユーザーを取得 reference_content = "" for string in reference_message_content.splitlines( ): #埋め込みのメッセージを行で分割してループ reference_content += "> " + string + "\n" #各行の先頭に`> `をつけて結合 reference_value = "**@{}**\n{}".format( reference_message_author, reference_content) #返信メッセージを生成 embed.add_field(name='返信しました', value=reference_value, inline=True) #埋め込みに返信メッセージを追加 await channel.send(embed=embed) #メッセージを送信 await message.add_reaction('✅') #リアクションを送信 # 新しい人が入ってきたとき @client.event async def on_member_join(member): # guildはdiscord内のserverのこと for channel in member.guild.channels: # generalチャンネルでの自己紹介 if str(channel) == "general": await channel.send_message(f"""初めまして {member.mention}さん""") # ウェブサーバーを起動する keep_alive() # Discordへ接続 client.run("トークン")

py

from flask import Flask from threading import Thread app = Flask("") @app.route("/") def main(): return "alive!" def run(): app.run("0.0.0.0", port=9981) def keep_alive(): t = Thread(target=run) t.start()

エラー

py

* Serving Flask app '' (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on all addresses. WARNING: This is a development server. Do not use it in a production deployment. * Running on http://172.18.0.120:9981/ (Press CTRL+C to quit) Traceback (most recent call last): File "main.py", line 93, in <module> client.run("トークン") File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 723, in run return future.result() File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 702, in runner await self.start(*args, **kwargs) File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 665, in start await self.login(*args, bot=bot) File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 511, in login await self.http.static_login(token.strip(), bot=bot) File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/http.py", line 300, in static_login data = await self.request(Route('GET', '/users/@me')) File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/http.py", line 216, in request raise HTTPException(r, data) discord.errors.HTTPException: 429 Too Many Requests (error code: 0): <!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]--> <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]--> <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]--> <head> <title>Access denied | discord.com used Cloudflare to restrict access</title> <meta charset="UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" /> <meta name="robots" content="noindex, nofollow" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" type="text/css" media="screen,projection" /> <script defer src="https://api.radar.cloudflare.com/beacon.js"></script> </head> <body> <div id="cf-wrapper"> <div class="cf-alert cf-alert-error cf-cookie-error hidden" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div> <div id="cf-error-details" class="p-0"> <header class="mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased"> <h1 class="inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight"> <span data-translate="error">Error</span> <span>1015</span> </h1> <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">Ray ID: 6ce3c9059b9e6832 &bull;</span> <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> <h2 class="text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light">You are being rate limited</h2> </header> <section class="w-240 lg:w-full mx-auto mb-8 lg:px-8"> <div id="what-happened-section" class="w-1/2 md:w-full"> <h2 class="text-3xl leading-tight font-normal mb-4 text-black-dark antialiased" data-translate="what_happened">What happened?</h2> <p>The owner of this website (discord.com) has banned you temporarily from accessing this website.</p> </div> </section> <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"> <p class="text-13"> <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">6ce3c9059b9e6832</strong></span> <span class="cf-footer-separator sm:hidden">&bull;</span> <span class="cf-footer-item sm:block sm:mb-1"><span>Your IP</span>: 34.127.75.94</span> <span class="cf-footer-separator sm:hidden">&bull;</span> <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> </p> </div><!-- /.error-footer --> </div><!-- /#cf-error-details --> </div><!-- /#cf-wrapper --> <script type="text/javascript"> window._cf_translation = {}; </script> </body> </html>

補足

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Discord

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

Python

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