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
18
Help us understand the problem. What is going on with this article?
@alegriaghost

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

More than 3 years have 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上でのやりとりの部分を記事にしたいと思います。

18
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
18
Help us understand the problem. What is going on with this article?