19
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DiscordAdvent Calendar 2017

Day 7

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

Last updated at Posted at 2017-12-07

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

19
21
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?