fitbit php auth不起作用

时间:2015-05-24 04:15:37

标签: php fitbit

经过10个小时尝试各种fitbit php库后,我转向stackoverflow寻求帮助。

这不起作用:https://github.com/heyitspavel/fitbitphp

使用

 $profile = $fitbit->getProfile();

使用该库返回

Fatal error: Uncaught exception 'FitBitException' with message 'Your Fitbit request failed. Code: 400' in /var/www/api/fitbitphp.php:324 Stack trace: #0 /var/www/api/addFitbit.php(22): FitBitPHP->getProfile() #1 {main} thrown in /var/www/api/fitbitphp.php on line 324

这个fitbit网站上的图书馆,似乎很多人都有这个问题。

    public function getProfile()
{
    $headers = $this->getHeaders();

    try {
        $this->oauth->fetch($this->baseApiUrl . "user/" . $this->userId . "/profile." . $this->responseFormat, null, OAUTH_HTTP_METHOD_GET, $headers);
    } catch (Exception $E) {
    }
    $response = $this->oauth->getLastResponse();
    $responseInfo = $this->oauth->getLastResponseInfo();
    if (!strcmp($responseInfo['http_code'], '200')) {
        $response = $this->parseResponse($response);

        if ($response)
            return $response;
        else
            throw new FitBitException($responseInfo['http_code'], 'Fitbit request failed. Code: ' . $responseInfo['http_code']);
    } else {
        throw new FitBitException($responseInfo['http_code'], 'Your Fitbit request failed. Code: ' . $responseInfo['http_code']);
    }
}

我也在这里试过了,但它没有返回用户令牌或会话ID https://github.com/nostra999/fitbit-api

1 个答案:

答案 0 :(得分:1)

可能错过了init步骤,如lib README文件(https://github.com/heyitspavel/fitbitphp/blob/master/README.md

中所述

简单的工作用途是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.measureregistertool"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.measureregistertool.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

同样来自Fitbit API文档: https://wiki.fitbit.com/display/API/API+Response+Format+And+Errors#APIResponseFormatAndErrors-Response

  

400 Bad Request任何一个端点都不存在的情况,资源   路径参数无效,POST请求参数无效或无   提供身份验证标头这不包括无效的特定   资源ID

如果这没有帮助,请提供您运行的完整代码,而不仅仅是

  

$ profile = $ fitbit-&gt; getProfile();