#はじめに
はじめまして。@soralis_nemです。
ご縁があり@44uk_i3さんの企画nem Advent Calendar 2017に参加させていただくことになりました。
すっかり参加していることを忘れてしまい、投稿が遅れてしまい大変申し訳ありませんでした。
#tipnemとは
@namuyanさんが開発された高性能なtipbotです。
詳しくはnem Advent Calendar 2017の12/5日の記事をご覧ください。
#tipnemをphpで
tipnemには高性能なAPIがありますが、httpではなくWebsocketを使っているため特殊です。
なむやんさんはPython版のライブラリは公開しているもののPHP版での扱い方を書いていきます。
本当はライブラリを書きたかったのですが、時間が足りなかったためサンプルコードをのみですが、そのうち公開するのでお楽しみに。
textalk/websocketを使います。
{
"require": {
"textalk/websocket": "1.0.*"
}
}
composer installをすればwebsocketが使えるようになります。
<?php
require('vendor/autoload.php');
use WebSocket\Client;
$url = "ws://tipnem.tk:8088";
$client = new Client($url);
$client->receive();
while (true) {
try {
$uuid = mt_rand(1, 2147483647);
$req = ["command"=>"bot/info","data"=>[],"uuid"=>$uuid];
$req = json_encode($req);
$client->send($req);
$res =$client->receive();
$res = json_decode($res);
print_r($res);
break;
} catch (WebSocket\ConnectionException $e) {
$client = new Client($url);
}
}
さらっとこんな感じに書くととりあえずは完了です。
あとは仕様をよんで実装していくだけです。
12/26 20:30追記 コードが間違っていたようなので修正しました
追記
https://github.com/soralis-nem/tipnem4php
にコードを公開しました。
composer require soralis_nem/tipnem4php で利用できます。