更新日:2015年02月08日
0.環境
[CentOS] 5.6 (32bit版カーネル)
[Apache] 2.2.3
[PHP] 5.4.1
[device] Fitbit One
1.OAuth Extensionインストール → fitbit API実行
(1-1) fitbit(活動量計)のAPI使用手順にそって作業を進めます。
下記コマンドを実行。
# pecl install oauth-0.99.9
エラー発生。
: (割愛) : /var/tmp/oauth/oauth.c:2058: warning: assignment from incompatible pointer type /var/tmp/oauth/oauth.c: In function 'zm_shutdown_oauth': /var/tmp/oauth/oauth.c:2092: warning: implicit declaration of function 'curl_global_cleanup' make: *** [oauth.lo] エラー 1 ERROR: `make' failed
こんな情報を見つけ、下記コマンドを実行。
# yum install curl-devel
エラーは変わらず、さらにこんな情報を見つけ、下記コマンドを実行。
# yum install pcre pcre-devel
またまたエラー発生・・・
OAuthを使うための条件を発見。
良さそうなページを見つけ、下記コマンドを実行。
# pecl install oauth-beta
お、成功!
Build process completed successfully Installing '/usr/lib/php/modules/oauth.so' install ok: channel://pecl.php.net/oauth-1.2.3 configuration option "php_ini" is not set to php.ini location You should add "extension=oauth.so" to php.ini
後は指示通りExtensionを追加します。
# vi /etc/php.d/oauth.ini extension=oauth.so
(1-2) サンプルプログラム実行。
準備ができたので、開発者用ページからサンプルプログラムをダウンロード。
サンプルプログラムを自分の設定に合わせて修正します。(下記1-3参照)
Apacheのドキュメントルートに配置して、ブラウザからアクセスするとエラーが発生。
(localhostは自分の環境に読み替えて下さい)
http://localhost/completeAuthorization.php
body_recv の値を見てみると、”fieldName”:“oauth_timestamp” があやしい。
(僕のVM(CentOS)では、時刻同期していないため時間が狂っています…)
date コマンドで正しい時刻に合わせ、再度ブラウザからアクセスすると下記メッセージが画面に表示されました。
healthcheck(individual)がFitbit.com上のあなたのプロフィールおよびデータへのアクセスを要求しています:
「許可する」をクリックするとサンプルページが表示され、僕の健康データが表示されました。
(予め fitbitの「開発者ページ」で、callbackのページを上記URLにしておいて下さい)
※ OAuthの復習はこちらのページで
(1-3) サンプルプログラム修正(【変更】は自分の設定に読み替えて下さい)
(2015/02/08, 更新) APIアクセスをhttpsに変更。