超簡単なチャットボットを作ってみる Python、Discord・・・・・・超簡単らしいですが、うまくいかない(´;ω;`)

(参考)

Pythonで簡単なDiscord Botの作り方
Pythonで実用Discord bot(discord.py解説)
Discord用にBOTを作る

(第一回)PythonでDiscordのBotを作る
(第二回)PythonでDiscordのBotを作る

===
(初歩的なBotができたら、やってみたいこと)
DiscordのBotを無料で24時間稼働にできた
Discordの翻訳Botを作った
===

以下で「pythonで簡単なDiscord Botの作り方」を元にbotを作ろうとしましたが、うまく動作せず・・・

目下、試行錯誤中・・・
★★有識者の方、アドバイスをいただけますと幸いです。
m(..)m

<手順>
1.事前準備
1)Dicordにサーバーを立てておく
サーバーの立て方

2)DiscordのDeveloper(https://discordapp.com/developers/applications/)で
botアカウントの作成し、登録する

→参照:Pythonで実用Discord bot(discord.py解説)

 

2.discord.pyをネットからダウンロードし、インストールする

discord.pyをpipを使ってインストール

> sudo python3 -m pip install -U discord.py

スーパーユーザになっていないとエラーになってしまう。

3.以下のサイトの記述の通りプログラミングして、実行する
→参照:Pythonで簡単なDiscord Botの作り方

 

・・・・・・・うまく行かない・・・(´;ω;`)

 

4.discord.pyを再度インストールを実行してみる・・・問題なかった。

$ sudo python3 -m pip install -U discord.py
The directory ‘/home/★★/.cache/pip/http’ or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
The directory ‘/home/★★/.cache/pip’ or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
Requirement already up-to-date: discord.py in /usr/local/lib/python3.6/dist-packages (0.16.12)
Requirement already satisfied, skipping upgrade: websockets<4.0,>=3.1 in /usr/local/lib/python3.6/dist-packages (from discord.py) (3.4)
Requirement already satisfied, skipping upgrade: aiohttp<1.1.0,>=1.0.0 in /usr/local/lib/python3.6/dist-packages (from discord.py) (1.0.5)
Requirement already satisfied, skipping upgrade: multidict>=2.0 in /usr/local/lib/python3.6/dist-packages (from aiohttp<1.1.0,>=1.0.0->discord.py) (4.3.1)
Requirement already satisfied, skipping upgrade: async-timeout in /usr/local/lib/python3.6/dist-packages (from aiohttp<1.1.0,>=1.0.0->discord.py) (3.0.0)
Requirement already satisfied, skipping upgrade: chardet in /usr/lib/python3/dist-packages (from aiohttp<1.1.0,>=1.0.0->discord.py) (3.0.4)

 

5.実行してみる

・・・・やっぱり失敗・・・・なぜ?

$ python3 bot3.py

Traceback (most recent call last):
File “/usr/local/lib/python3.6/dist-packages/discord/http.py”, line 258, in static_login
data = yield from self.request(Route(‘GET’, ‘/users/@me’))
File “/usr/local/lib/python3.6/dist-packages/discord/http.py”, line 200, in request
raise HTTPException(r, data)
discord.errors.HTTPException: UNAUTHORIZED (status code: 401): 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “bot2.py”, line 27, in <module>
client.run(‘★★★★★★’)
File “/usr/local/lib/python3.6/dist-packages/discord/client.py”, line 519, in run
self.loop.run_until_complete(self.start(*args, **kwargs))
File “/usr/lib/python3.6/asyncio/base_events.py”, line 468, in run_until_complete
return future.result()
File “/usr/local/lib/python3.6/dist-packages/discord/client.py”, line 490, in start
yield from self.login(*args, **kwargs)
File “/usr/local/lib/python3.6/dist-packages/discord/client.py”, line 416, in login
yield from getattr(self, ‘_login_’ + str(n))(*args, **kwargs)
File “/usr/local/lib/python3.6/dist-packages/discord/client.py”, line 346, in _login_1
data = yield from self.http.static_login(token, bot=is_bot)
File “/usr/local/lib/python3.6/dist-packages/discord/http.py”, line 262, in static_login
raise LoginFailure(‘Improper token has been passed.’) from e
discord.errors.LoginFailure: Improper token has been passed.
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fa0539444a8>

 

 

==>ソースコードは、ここから
# coding: UTF-8
#プログラムの中で日本語を扱う場合には、プログラムの文頭で文字コードを指定し、指定した文字コードでファイルを保存する必要がある。
#その為プログラミングしているpythoのコードの文頭に 下記文字コードを指定する必要があります。

# discord.pyバッケージをインストールする
import discord # インストールした discord.py

client = discord.Client()
# 接続に使用するオブジェクト

# 起動時に通知してくれる処理
@client.event
async def on_ready():
print(‘ログインしました’)

# 「/neko」と発言したら「にゃーん」が返る処理
@client.event
async def on_message(message):
if message.content.startswith(‘/neko’):
reply = ‘にゃーん’
await client.send_message(message.channel, reply)

# botの接続と起動
# (tokenにはbotアカウントのアクセストークンを入れてください)
client.run(‘★★★トークンを記入する★★★’)

===ソースコードは、ここまで

(補足)
ソースコードに「# coding: UTF-8」が入っていないと
エラーになる。

$ python3 bot_main.py

> エラーSyntaxError: Non-ASCII character ‘\xe3’ in
プログラムの中で日本語を扱う場合には、プログラムの文頭で文字コードを指定し、指定した文字コードでファイルを保存する必要があります。その為プログラミングしているpythoのコードの文頭に 下記文字コードを指定する必要があるとのこと

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です