#4804

外界へと繋がる文字列


web制作


昨夜から今日の夕方にかけて、特設サイト『ピクミンシリーズチャレンジモード大会』で、
スコア投稿を同時にTwitterにもPOSTできるよう、Twitter APIなるものをいじっていました。
昨夜時点でもうこれで完成なんじゃないか、というところまであっさり行き着いたのですが、
その後のテスト段階で相当にハマったのでその備忘録を兼ねて所感をだらだら書きます。

Twitter APIとはさまざまなプログラミング言語でTwitterとの連携を実現する仕組みのこと。
例えばあるユーザーの情報を取得してユーザー情報を表示してみたり、
あるユーザーで呟いたりと、早い話が公式アプリと同じようなことができるようになります。
PHPの場合はjson形式で取得するのでそれを配列変数に分解して格納する感じ。
あとはいつもの変数と同じようにユーザー情報を取り扱えるため、
考え方次第でいろいろなことができます。PHP単独ではやや難しい気もしますが、
Ajaxを応用すればWeb版公式アプリの亜種みたいなものも作れてしまいます。
いわゆる診断メーカーみたいなものもこれさえあればアイデア次第で実現します。

と、夢の膨らむTwitter APIですがハードルもいろいろとありました。
PHPとTwitter APIを繋ぐには『TwitterOAuth』というオープンなライブラリを使うのですが、
これが非常に頻繁な仕様変更を行っているため、
例えば日本語の解説サイトを見ても一年前の情報だとすでにフルパスの記述から違ったりして、
情報が流動的すぎるために正確な情報を掴みづらいという難しさがありました。
この辺は技術力はもとより、検索力を求められましたね……。
最近よくお世話になっているQiita.comというサイトが無かったら匙を投げていたところでした。
Qiitaは最近活発な印象のプログラミングなどの技術系情報共有サービスで、
ライブラリの古いバージョンについてのTipsや基礎知識まで、
かなりニッチな分野までさまざまなユーザーが手を出してくれているため、
自分がプログラミング系で何か調べ物をしようとするとこのサイトに行き着くことが多いです。

情報が古くなりやすく検索が難しかったというのが一点。
二つ目は、PHPのバージョンによって正常稼働しなかったこと。これは盲点でした。
散々テスト環境で試してきたのに本番環境になるとさっぱり動かない。
自分が書いた場所ではなくライブラリ内部からエラーが出てくるのでもうお手上げ。
ここでも匙を投げかけましたが、散々調べているうちにPHPが古いせいかもしれない、
というところに行き着き、バージョンを5.3から5.6に上げることで事なきを得ました。

そして最後、極めつけはTwitter APIが申告したドメインでしか動かないという点。
自分はPHPの制作環境はずっとXAMPP、つまりローカル環境です。
フルパスを記述すれば外部ファイルの参照は問題なく行ってくれるため
今まではずっとこれでやってこれましたが、
初めてのAPI導入で実行環境が制限されてしまったことによって、
完成前の段階で本番環境でいろいろと試さざるを得なくなり、
大元のデータベースに影響を与えるわけにいかないことから行動が酷く制限されてしまい、
これのせいで詰めの作業が全然捗りませんでした。

本番環境でしか動かないという制約については
デバッグモードを実装していれば回避できた問題で、これは今後の課題になりそうです。
管理者ログインだけ先行機能を試せるようにしておいて、
試すときだけデータベースに影響を与えないように論理式をいじればいいわけですからね。
とはいえ今回は今週末以内に決着を付けたかったことと、
デバッグモードを作るとは簡単に言っても6000行近いコードにそれを組み込むのも
なかなか骨が折れる作業なので今回はゴリ押ししてしまいました。
まぁ最近はちょっとアップデート後の不具合も多くなってきていたし
次に何か機能追加をする前にはやらなきゃいけないかなーとは思っています。

今回はAPI初挑戦で、まぁ接続テストにはさまざまなハードルもありましたが、
やってみると意外と付け焼き刃でも実現できるところまで行けるんだなとも思いました。
何か良いアイデアを思いついたときに是非応用していきたいところですね。

コメントを残す