更新日: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に変更。