Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Discord Botを作ってGoogleComputeEngineに配置

More than 1 year has passed since last update.

はじめに

pythonの勉強がてら、discordでしょうもないBOTを作成してGCPのクラウドサーバーに載せてみたいと思います。
Discord側の設定と、GCPの登録方法がメインです。Discord側の設定は以下をめちゃくちゃ参考にさせていただきました。

Pythonで簡単なDiscord Botの作り方

環境

  • Windows10
  • Python3.6.6

Discord側の設定

まずはテスト用サーバーを作る。左ペインのサーバー追加ボタンを押して、
image.png

「新規作成」を選びサーバーを追加します。
image.png

名前は適当に入力しましょう。
image.png

サーバーが追加できました。
image.png

今度は、ブラウザでDiscordのBotを登録しましょう。
Discordにログインし、マイアプリのページを開きます。
(既に1個アプリが存在しますが気にしないでください)
image.png

「新しいアプリ」ボタンを押して、アプリの名前やアイコン、説明を入力して「作成」をクリックすると、こんな画面になります。
image.png

「Botユーザーを作成」ボタンを押してBotユーザーを作成してください。
image.png

こんな感じになります。
image.png

次はOAuthの設定。「Generating OAuth2 URL」を押して、
image.png

OAuth2 URL右の「COPY」を押してクリップボードにコピー。
image.png

コピーしたURLをブラウザで開くと、以下のような画面になります。
サーバーを選んで認証し、ロボットチェックを超えれば…
image.png

最初に作成したDiscordのサーバーに、BOTが追加されています。
image.png

Pythonの設定

まずはPython3の環境を作ります。
Windowsなので、Pythonは普通にインストーラーをダウンロードしてインストールしました。

  • 2018/07/01現在、一部のライブラリがPython3.7.0に対応しておらず実行できません。3.6.6以下を使用してください。

discordライブラリをインストール。

> pip install discord

あとはBOTのプログラムを書く。
今回は誰かが「そうなの?」とか聞くと「ソーナノ」を返してくれるようなBOTを作成します。GitHubで公開してみたのでよければどうぞ。
以下のように実行すると、先ほどのサーバーに追加されたBOTがチャンネルに参加します。

$ py main.py

image.png

同じチャンネルに参加している人が「ソーナノ」とか言えばBOTが反応してくれます。

GoogleComputeEngineの設定

すみません、GCPに登録してプロジェクト作るところまで事前にやっちゃいました。。。
仮想マシンを作ってdebianを入れて、BOTをデプロイするところをやりましょう。

まずはインスタンスを作ります。
image.png

リージョンを北米、マシンタイプをmicroにします。これで1か月の料金が無料になるはず。
image.png

インスタンスが出来ました。
image.png

まずはSSHでつなげるようにしたいですね。以下を参考にさせていただきました。
GCPに共通鍵を追加する手順まとめ

SSH公開鍵の設定が終わればTeraTerm等で接続できます。私はいつもWinSCP+PuTTYを使用してログイン情報を保存しています。

ホスト名には作成したVMの外部IPを記載します。
image.png

「設定」から設定を開いて秘密鍵を設定します。
image.png

image.png

SSH接続できました。
image.png

Linux設定

次はいよいよ、作成したLinuxにPythonとかをインストールし、Botをデプロイしてみます。

$ python3 --version
Python 3.5.3

Pythonは最初から入ってるみたいですね。pipはないみたいなのでまずはpipをインストールし、その後実行に必要なdiscordモジュールをpipでインストールします。

$ sudo apt install python3-pip
$ sudo python3 -m pip install discord

先ほどのソースを配置します。
image.png

sshでフォルダに移動して実行。

$ pwd
/home/amama/WobbuffetBot
$ nohup python3 main.py &

これでBotが起動しました。あとはログアウトしても大丈夫です。

最後に

DiscordBotを常時立ち上げておける環境がないか探していたのですが、GCPが無事に使えそうでよかったです。次はGCP上でコンテナ動かすとかやってみたいですね。

amama-nagigi
光の戦士
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away