Cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

make API call after authorization (oAuth 2) in php

ANSWERED

I have done the authentication successfully. But now I don't know of how to make a API call. 

I use this php-class:

$provider = new djchen\OAuth2\Client\Provider\Fitbit([

 

In an example I found this:

    $endpoint = $provider->getBaseApiUrl() . "user/-/activities/heart/date/today/1d." . FitBit::FORMAT_JSON;   

but, I get an error 500.

 

Can somebody point me in the right direction?

Best Answer
0 Votes
1 BEST ANSWER

Accepted Solutions

There are other libraries you could use as well as djchens oauth2 implementation.

I've also created an oauth2.0 provider for fitbit (https://github.com/jmitchell38488/oauth2-fitbit)

 

Do you know what the 500 server error is? You need to add the access token to the request so that the server can authenticate you.

 

For example (with my provider):

$endpoint = $provider->getBaseApiUrl() . "user/-/profile." . FitBit::FORMAT_JSON;
// endpoint: https://api.fitbit.com/1/user/-/profile.json $provider = new FitBit([ 'clientId' => $my_client_id_from_fitbit, 'clientSecret' => $my_client_secret_from_fitbit, 'redirectUri' => $my_callback_url, ]); $request = $provider->getAuthenticatedRequest( FitBit::METHOD_GET, $endpoint, $_SESSION['fitbit']['oauth2']['accessToken'] ); $response = $provider->getResponse($request);

Server 500 error could mean a number of different things. There isn't much we can do without a full error log.

View best answer in original post

Best Answer
0 Votes
4 REPLIES 4

I suggest you open an issue on Github with the project for support:

https://github.com/djchen/oauth2-fitbit/issues

Best Answer
0 Votes

There are other libraries you could use as well as djchens oauth2 implementation.

I've also created an oauth2.0 provider for fitbit (https://github.com/jmitchell38488/oauth2-fitbit)

 

Do you know what the 500 server error is? You need to add the access token to the request so that the server can authenticate you.

 

For example (with my provider):

$endpoint = $provider->getBaseApiUrl() . "user/-/profile." . FitBit::FORMAT_JSON;
// endpoint: https://api.fitbit.com/1/user/-/profile.json $provider = new FitBit([ 'clientId' => $my_client_id_from_fitbit, 'clientSecret' => $my_client_secret_from_fitbit, 'redirectUri' => $my_callback_url, ]); $request = $provider->getAuthenticatedRequest( FitBit::METHOD_GET, $endpoint, $_SESSION['fitbit']['oauth2']['accessToken'] ); $response = $provider->getResponse($request);

Server 500 error could mean a number of different things. There isn't much we can do without a full error log.

Best Answer
0 Votes

Is there a solution in plain PHP for this? I've spent hours looking already!

 

In short, I can get through authorization just fine.. but when I try to get actual data, I get nothing back!!!

 

    define("client_id",'xxx');
    define("client_secret",'xxx');
    define("response_type",'code');
    define("scope", 'activity');
    define("redirect_uri", 'xxx');

$code = $_GET['code']; $url = "https://api.fitbit.com/oauth2/token"; $auth_header = array("Authorization: Basic " . base64_encode(client_id.":".client_secret), "Content-Type: application/x-www-form-urlencoded"); $access_token_setttings = array( 'code' => $code, 'grant_type' => "authorization_code", 'client_id' => client_id, 'redirect_uri' => redirect_uri ); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HTTPHEADER, $auth_header); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($access_token_setttings)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($curl); curl_close(); $results = json_decode($result, true); //var_dump($result); echo $results['user_id'];

The above code works fine.. I get a reply with an access_token, expires_in, and refresh_token ... but how do I get actual data? When I make a php JASON call with the code below, I get nothing.

 

$newURL = 'https://api.fitbitcom/1/user/'.$results['user_id'].'/activities/date/2016-02-26.json';

 I tried searching everything, here, github, etc.. thanks!

Best Answer
0 Votes

Hi ptsChris,

 

Were you able to get your PHP code working?

 

Thanks,


Tim

 

 

Best Answer
0 Votes