DiscordでBotを動かす(PHP編)

BotをPHPで動かす

DiscordのBotを動かす の続きです。

今回はPHPでDiscordのBotを動かしていきます。
イメージ的にはBotの挙動を記述したPHPのプログラムを動作させ続けている間はBotがログインしている状態で、コマンドの受付を待っている状態。待っている間に指定されたコマンドを受け付けると、PHPの方で受け取って何かしら処理をして返答を行う処理になります。

導入の前提としてPHP5.6以上とcomposerがインストールされている必要があります。

Discordが公開しているPHPに関するドキュメントはこちら
https://discordphp.readme.io/docs

環境の導入は簡単でPHPの開発を行っている環境であれば、composerでdiscordのライブラリを指定するだけで入ります。

$ composer require team-reflex/discord-php

動作確認

<?php
// run.php
include __DIR__.'/vendor/autoload.php';

$discord = new \Discord\Discord([
    'token' => 'XXXXXXXXX__BOTTOKEN__XXXXXXXXXXX',
]);

$discord->on('ready', function ($discord) {
    echo "Bot is ready.", PHP_EOL;

    $discord->on('message', function ($message) {
        echo "Recieved a message from {$message->author->username}: {$message->content}", PHP_EOL;
    });
});

$discord->run();

ドキュメントそのままのソースコードです。

$ php run.php

起動が成功すると文字が表示されてBotがオンラインになります。このプログラムを起動している間Botがオンライン状態で表示されます。

今回のサンプルは投稿された発言をBotを動かしているサーバに表示するだけのプログラムですので、なにか発言してみます。

黒い画面に投稿した内容が表示されれば動作できています。

実はあんまりPHPのサンプルが無いんですよね、NodeやPythonでやれということでしょうか? コマンドの登録を行うのも私の環境が悪いのか上手く動かなかった・・・