#5156

網のような情報群


web制作


昨夜から、特設サイトにTwitch APIを導入して
関連した配信がライブ状態のときにチャンネル名を表示する仕組みを作ろうとしていたのですが、
結論から言って挫折しました。
同じようなAPIであるTwitterOAuthは試行錯誤しつつもなんとか導入できたのですが、
Twitchの方はGitHubにPHPに導入するライブラリを公開している人はいるものの、
それを日本語で解説しているブログが皆無。
別方向のアプローチとして「Node.js」を使っての取得例を紹介したサイトはあったものの、
そちらはまずNode.jsの導入自体がやたらハードルが高いうえに、
そもそもXAMPP環境では動かせるもののレンタルサーバーでは稼働しないということが分かり、
導入までして結局頓挫しました。
Node.jsとは、超ざっくり言えばJavaScriptをサーバーサイドで動かすためのライブラリ。
ふつう、JavaScriptは閲覧者の端末に自動ダウンロードしてそこで動くため、
コードは丸見えで動作速度等もユーザーの環境に左右されるという特質があるのですが、
Node.jsはそんなJSをPHPなどと同じようにサーバーで動かそうというもの……
らしいのですが、動かしたことのない自分はこれ以上語れるものはありません。

結局PHP向けライブラリを英語を解読しつつ導入するしかなくなり、
どうやら現在のPHP開発環境では一般的な『composer』を導入するのが手っ取り早いらしく、
今度はそちらの導入を試してみて、こちらはすぐにできました。
composerも一言での説明が難しいのですが、
例えばGitHubで公開されているプラグインやライブラリを導入したいと思ったとき、
しかしそのライブラリ自体も別のライブラリを使用して作られているということが間々あります。
そういうときに、ライブラリが参照しているライブラリを探して全部導入するのは大変な手間。
そこで、最終的に動かしたいライブラリが必要とするものを一元管理して、
一括ダウンロードできる仕組みがcomposerです。
あとはローカル環境のコマンドプロンプトから「composer ライブラリ名」と叩くだけで、
然るべきディレクトリに必要なライブラリが一括ダウンロードされるというわけです。
ライブラリのルートディレクトリには「autoload.」というファイルが生成され、
これが必要なライブラリをすべて読み込む連絡係の役割を担っているため、
プログラム本体からはこのファイルをrequireするだけで
すべての必要ライブラリと繋げることができます。これはすごい。

というわけでライブラリの導入はうまくいったはずなのですが、
いざリクエストしてみると何やら怪しいURLを含むFatal Errorが吐き出されてしまったため、
そもそもライブラリが不完全なのかもしれないということでここで断念しました。
Twitchのゲーム別ページは静的URLで表示されるため、
file_get_contents関数などで直接アクセスして取得する方法がなくもないですが、
APIを用意しているサイトに対してこういうことをすると
利用規約に違反する可能性が否定できないためやめておきました。
まぁライブラリの中身をよく見ていずれリベンジはしたいなとは思っています。

連休初日の今日は珍しく前日夜から今日の15時までで主要タスクのほとんどを片付けてしまったため、
珍しく心理的にも余裕のあった一日でした。
最初からタスクがなかったらこの気持ちはきっと得られなかったでしょう。
タスクがあって、それを早めに片付けることができてこその余裕なんでしょうね。
平日早起きが続いているためか今日は休日にもかかわらず10時半に起きられ、
それによって体感時間が長かったのも大きいかも。

コメントを残す