見出し画像

DISCORDからAWS Cloud9を操作しBOT起動/停止する方法

こちらのnoteでは、仮想通貨のBOTの起動/停止をはじめ、AWS Cloud9のターミナル操作もDISCORDでまとめて行える環境構築の手順を解説します。
これで、外出先からでもスマホで簡単にBOT管理をすることが可能となります!


DISCORD対話型BOTの設定手順▼
1.DISCORDに独自サーバーを新規作成する
2.DISCORD DEVELOPER PORTALでAPPトークンを取得
3.DISCORD対話型BOTをCloud9に設定する
4.DISCORD対話型BOTを起動


では順番に説明していきます。


1.DISCORDに独自サーバーを新規作成する

DISCORDにログインし、左側の「+」ボタンをクリック

画像1


【Create a Server】をクリック

画像2

「サーバー名」に適当な名前を入力し【新規作成】をクリック

画像3

新規作成されると画面上部のようなエラーでることがあるので、Voice Channelsを削除しましょう

画像4

【カテゴリーを削除】をクリック

画像5

こうなります。

画像6


これで、1.の手順は完了です。



2.DISCORD DEVELOPER PORTALでAPPトークンを取得


次に、DISCORD DEVELOPER PORTALというサイトでトークンを取得し、自分のDISCORDサーバーとの接続を行います。

上のリンクに飛ぶと、以下のようなログイン画面が出ますのでDISCORDのEメールアドレス、パスワードを入力しログインしてください。

画像7

2段階認証設定済みの場合は入力してログイン

画像8

New Applicationをクリックします

画像9

適当な名前を入力し【Create】をクリック

画像10

こんな画面になります

画像11

左のSETTINGSをクリックし、画面右の【Add Bot】をクリック

画像12

【Yes, Do it!】をクリック

画像13

すると、画面中央に「TOKEN」という部分が出てるので、【Click to Reveal Token】かCOPYでトークンをコピーしておきます

画像14

画像15

このTOKENは後でpythonプログラムに設定するので、しっかりと管理しておいてください。また、このTOKENが漏れると、自分のCloud9の環境が操作されたりする危険性もあるため、厳重に保管してください。


次に、SETTINGSから「OAuth2」を選択し、SCOPESで「bot」を選択後、右下の【copy】を押してURLをコピーします

画像16

URLを直接ブラウザへ貼り付けてアクセスします

画像17

このような画面になりますので、

画像18

BOTを接続するために1.で作成したサーバーを選択して【認証】をクリック

画像19

認証されたら2.の手順は完了です。

画像20




3.DISCORD対話型BOTをCloud9に設定する

次に、Cloud9のインスタンスを起動し、DISCORD対話型BOTを設定していきます。

左側で右クリックし、【New File】をクリック

画像21

作成されたファイル名を変更します

画像22

画像23


次に、ターミナルで以下のコマンドを入力し【Enter】をクリック

chmod 775 discord_bot.py

コマンド入力し、

画像24

【Enter】クリックで実行権限付与される

画像25


以下のコマンドをターミナル入力しライブラリをインストールします

sudo pip-3.6 install discord

画像26

ライブラリがインストールされます

画像27


次にファイル名をダブルクリックして開き、以下のソースコードをコピー&ペーストで貼り付けます

画像28

# -*- coding: utf-8 -*-
import os
import time
from datetime import datetime
import sys
import subprocess
import discord
import pybitflyer
import pandas as pd

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

TOKEN = ''

class bot_channnel:
    
    def  __init__(self):
        self.process = None
        self.bot_name = None

    def start(self, message):
        
        mgc  = message.content
        mgs = mgc.split(' ')
        self.bot_name = mgs[1]        
        print('{} START'.format(mgs[1]))
        time.sleep(1)
        self.process = subprocess.Popen(['python3', mgs[1]])
        return '{} START'.format(mgs[1])
        
    def stop(self, message):
        
        mgc  = message.content
        mgs = mgc.split(' ')
        self.bot_name = mgs[1]   
        
        self.process.kill()
        
        print('---------------------------------------------')
        print()
        print('{} STOP'.format(self.bot_name))
            
        return '{} STOP'.format(self.bot_name)

bc = bot_channnel()
       
@client.event
async def on_ready():
    print('CLOUD9 BOT AVAILABLE')
    
@client.event
async def on_message(message):
    if message.content.startswith('0'):
        cmd = message.content[1:]
        process = (subprocess.Popen(cmd, stdout=subprocess.PIPE,
                           shell=True).communicate()[0]).decode('utf-8')
        if process != '':
            await client.send_message(message.channel, process)
    
    if message.content.startswith('1'):
        cmd = message.content[1:]        
        if 'start' in cmd:
            await client.send_message(message.channel, bc.start(message))
        if 'stop' in cmd:
            await client.send_message(message.channel, bc.stop(message))
    
client.run(TOKEN)

画像29


次に、2.で取得したトークンをBOTに設定します。

13行目に画像30

トークンを設定します画像31


これで3.の手順は完了です。



4.DISCORD対話型BOTを起動

では、実際にDISCORD対話型BOTを起動してみましょう。

discord_bot.pyがアクティブの状態で【Run】をクリック

画像32

実行されると、以下のメッセージが実行タブに出力されます

画像33

次に、DISCORDの設定したサーバーを開いてみると、BOTがオンラインになっているのがわかります。

画像34


では、実際にBOTの機能を使ってみましょう。以下のようなことが行えるようになります。

DISCORD対話型BOTで使える機能▼
先頭に"0"をつける・・・先頭より後に入力したコマンドをターミナルで実行し、実行結果をDISCORDにログ出力する
先頭に"1"をつける・・・ START [botのファイル名] でBOT起動、STOP [botのファイル名] でBOT停止ができる


例として、DISCORDにターミナルで実行したいコマンドを打ってみます。

0pwd(pwdというコマンドで現在のディレクトリパスがわかる)

画像35

現在のディレクトリのパスがBOTから返ってきます

画像36


0ls(lsというコマンドで現在のディレクトリに含まれるディレクトリ・ファイルを一覧表示)

画像37

現在のディレクトリに含まれるディレクトリ・pythonプログラム、テキストファイルなどが返ってきます

画像38

他にもコマンドを入力すれば操作できますので、いろいろ知りたい場合は「UNIXコマンド」でぐぐってください。


次にBOTの起動・停止をしてみましょう。マーケットメイカーBOTを起動してみます

画像39

画像40

BOTの設定はこれです

画像41

ちゃんとBOTが起動して注文が出ています

画像42

最後にBOTを止めてみましょう

画像43

画像44

BOT停止しました。


以上となります。注意点として、インスタンスを【Never】で動かしっぱなしにすることと、discord_bot.pyは起動しっぱなしにしないと動きませんので、ご注意ください。


以上です。お疲れさまでした!!


この記事が気に入ったらサポートをしてみませんか?