シェルが使えないレンタルサーバで Facebook API を使う
PHP 5.2 なら JSON は標準で入っていますからこんな苦労はないですが、レンタルサーバで PHP 5.1.6、シェルは使えない。という環境で Facebook API を使うのに嵌まった。シェルが使えないサーバで開発ってこんなに大変なのね(苦笑)
もう二度とやりたくないけど、せっかくだから備忘録です。
手順
Facebook SDK for PHP をダウンロードしてクライアントで解凍。
facebook.php
base_facebook.php
をパスが通るところに置く。
class-json.php をダウンロードしてパスが通るところに置く。
class-json.php
if (!function_exists('json_decode')) { throw new Exception('Facebook needs the JSON PHP extension.'); }
こんな風に書き換える。
if ( !function_exists('json_decode') ) { function json_decode( $string, $assoc_array = false ) { global $wp_json; if ( !is_a($wp_json, 'Services_JSON') ) { require_once( 'class-json.php' ); //パス通は適当に指定する $wp_json = new Services_JSON(); } $res = $wp_json->decode( $string ); if ( $assoc_array ) $res = _json_decode_object_helper( $res ); return $res; } function _json_decode_object_helper($data) { if ( is_object($data) ) $data = get_object_vars($data); return is_array($data) ? array_map(__FUNCTION__, $data) : $data; } }
あとは、ソーシャルメディアAPI リファレンス この辺の通りにすれば多分できると思います。
WordPress は JSON を使って動いているはずなので、その辺を参考にしました(笑)
SDKを書き換えているので自己責任でお願いします。
こんなことに嵌まるとは、もう歳やね……。