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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

414閲覧

Discord.pyとユーザ認証に関する質問

ZeroHyodo

総合スコア16

Discord

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/08/23 00:59

Discord.pyおよびpython初心者です。
現在、herokuとdiscord.pyを用いて、特定のサイトからデータを収集し、Discord上で扱うようなbotのスクリプトを書いています。

将来的にこのbotを配布しようと思っているのですが、そのためにpythonコードを配布しherokuの設定まで各利用者にお願いするのは申し訳ないので、一つのbotを各サーバーに入れる形にしようと思っています。

ここで、データ収集のためにユーザ認証(パスワードとID)が必要なのですが、これをどのように各サーバーに対応させるかを悩んでいます。自分で考えた結果、以下のいずれかではないかという結論に至りました。

①用いているherokuのサーバーに保存する。
②pythonでCookieを用いて保存する。
③各サーバーの管理人のローカルファイルにIDとパスワードを保存する。
④DiscordのDMに保存し、プログラムを走らせる場合にはこれを参照する。

それぞれでお聞きしたいことがあります。

①このようにした場合、どのようなセキュリティを施せばよろしいでしょうか?全てのサーバーの管理人の認証を保存するようなサーバーには、どのような対策が必要でしょうか?

②discord.pyでCookieを利用することは可能のでしょうか?また、それを各サーバーで利用することは可能なのでしょうか?

③discord.pyからローカルファイルを閲覧することは可能なのでしょうか?

④このような運用をした場合、どのようにセキュリティを施すべきでしょうか。

Discord.pyやbot運用を始めて日が浅いため至らぬ点等あると思われますが、何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

  1. 個別に対応することは必要ないと考えられます。herokuのローカルファイルにアクセスする形式ならば、特に考えなくても問題ないと思います。

  2. CookieがブラウザのようなCookieと解釈するのであれば、難しいと思います。Discordにはユーザーごとに個別に割り振られているIDがあります。ユーザーの識別にはそれを使うといいと思います。

  3. herokuサーバー上にあるファイルなら可能だと思います。管理人のローカルファイルから引っ張ってくるなら、逐一Discordにアップロードしてもらう形になるかと思います。

  4. あまりおすすめしないです。参照するのがめんどくさいです。

json形式で保存するのがおすすめです。デバッグ等行っておりませんので参考程度にお願い致します。
コード例:

Python

1import json 2 3def saveinfo(guildid, usrid, password): 4 guildid = str(guildid) 5 try: 6 with open(f'{info.json}','r') as f: 7 info = json.dumps(r.read()) 8 except: 9 print(f'{info}.jsonが見つかりませんでした') 10 info.update({guildid:f"{usrid}:{password}"}) 11 12with open(f'{info.json}','w') as f: 13 f.write(info)

投稿2022/08/23 03:41

start

総合スコア101

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

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

ZeroHyodo

2022/08/23 10:07

試してみます、ありがとうございます!
start

2022/08/24 13:18

疑問が解決したのであれば解決済みラベルを付与していただけるとありがたいです!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問