Help us understand the problem. What is going on with this article?

DiscordPHPを使って簡単なBotを作ってみる - 導入編

More than 1 year has passed since last update.

Discord Advent Carendar 2017 7日目

空いてたので、導入編として最初の設定だけ書いちゃいます。

DiscordPHPとは

3日目や4日目の記事にもあった erisdiscord.js みたいなライブラリの一種ですね。
名前どおりPHPで書けるライブラリです。

やってみよう

DiscordPHPのドキュメントがありますので、そこのGetting Startedからやっていってみます。

Botユーザの作成

Getting Startedを始める前にBot自身を作成しないといけませんので、そちらも作成しておきましょう。
詳細は3日目にsbhrさんが書かれていますので、ここでは割愛しますね。
sbhrさんの記事

今回はPHP珠ちゃんのBotを使います。
image.png

composerでdiscord-phpを導入

PHP界隈では有名なcomposerを使用します。
composerのインストールについてはここでは触れませんので、ご了承ください。

まずcomposer用ファイルのcomposer.jsonを作成します。

composer init と入力

ターミナルで入力してね
⫸ composer init


  Welcome to the Composer config generator



This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [*****/discord-php-sample]:
Description []: discord php sample project
Author [***** <*****@gmail.com>, n to skip]:
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []:
License []:

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package:

composer init すると上記のように色々と出てきて入力が求められますが
すべてEnterで大丈夫です。

composer.jsonが作成されたので、次はDiscordPHPのライブラリを導入してしまいましょう。

composer require team-reflex/discord-php を入力します。
入力するとずら~っとたくさん出てきて勝手に終わってくれます。

これで導入自体は完了です。

簡単なプログラムだけ書いてみる

あともう少しだけおつきあいを。
今回はまだDiscord上に流したりするようなものまでは書きませんが、動作確認程度はしてみましょう。
(Getting Startedに書いてあるコードをそのまま流用します。)

run.php
<?php

include __DIR__.'/vendor/autoload.php';

$discord = new \Discord\Discord([
    'token' => 'your-auth-token', // ←作成したBotのTokenを入力してね
]);

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

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

$discord->run();

動かしてみますぞ

さて、動かしてみましょうか。

ターミナルで php run.php を入力します。

プログラム側で記述していた Bot is ready. が最後に表示されていれば成功です。
image.png

Discord側では↓のようにBotがオンライン状態になっていればOKです。
image.png

では実際に動作を確認してみましょう。

Discord側での入力
image.png

確認しますぞ。
image.png

ちゃんとログに残ってますね!

まとめ

composerの扱いに慣れていれば、導入自体は一瞬で終わります。
簡単ですね。

おわりに

Getting Startedをただ日本語でQiitaに書いただけでしたね。
また後日、今度はDiscord上でのやりとりの部分を記事にしたいと思います。

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした