Intereting Posts
PHP 'file_get_contents' не работает с сервера Как создать дополнительный уровень меню с помощью плагина jQuery Nestable с помощью Codeigniter? Есть ли способ получить количество записей из запроса с помощью Zend-framework? Лучший способ найти последний вставленный идентификатор в mysql, используя php Создание экземпляра объекта из опубликованных данных – PHP Проблемы с именем пользователя или с помощью двоеточия при настройке CURLOPT_USERPWD Как установить значение для кнопок «Радио» Когда вы редактируете? Что такое PHP-оператор% и как его использовать в реальных примерах? PhpStorm не получает соединения xdebug: журнал событий PhpStorm: не удается оценить выражение 'isset ($ _ SERVER )' Каковы важные различия между использованием fopen ($ url) и curl в PHP? AngularJS и Codeigniter – Комбинация и передача данных Возьмите значение массива, если имеется определенный ключ с PHP Twig tag включает функцию vs include php – как открыть окно печати, когда файл pdf открывается на веб-странице? Функция Php, чтобы определить, состоит ли строка из только буквенно-цифровых символов?

Невозможно получить данные JSON от fitbit oauth2 api

Я работаю с apythifit api с PHP, я пытаюсь просто эхо-данные json в данный момент, но данные JSON, которые я получаю, являются неправильной ошибкой запроса. Пока это работает. Я впервые перешел http://www.plas.nyc/TEST/fitbit.php, который представляет собой код, ниже которого после нажатия кнопки LOGIN перенаправляет меня на сайт фиттита, который затем возвращается обратно на мой сайт с кодом, добавленным в URL: http : //www.plas.nyc/TEST/fitbit.php? code = cc8462bcde166d20517fc099b8ea9c994738ac59, который является большим, но BAD PART – это JSON, полученный в моем var_dump, является ошибкой, которая снимает это в DOM вместо правильных данных, которые я запросил :

string(210) "{"errors":[{"errorType":"invalid_request","message":"Authorization header required. Visit https://dev.fitbit.com/docs/oauth2 for more information on the Fitbit Web API authorization process."}],"success":false}" 

На данный момент я не уверен, что может быть неправильным? Ниже приведен код, написанный для этого.

 <?php /*--------------------- Fitbit API Keys ---------------------*/ // CONSTANTS define("user_id",'X2222X'); // renamed to X2222X for this post define("client_id",'X1111X'); //renamed to X1111X for this post. define("response_type",'code'); define("scope", 'activity nutrition profile settings sleep social weight'); define("redirect_uri", 'http://www.plas.nyc/TEST/fitbit.php'); if($_GET['code']){ echo '<h1>success</h1>'; //loggedin $code = $_GET['code']; $url = "https://api.fitbit.com/oauth2/token"; $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_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $access_token_setttings); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// look into it more $result = curl_exec($curl); curl_close(); $results = json_decode($result, true); var_dump($result); } else { ?> <!DOCTYPE html> <html> <head> <title>FITBIT API -|- PLAS.NYC</title> </head> <body> <a href="https://www.fitbit.com/oauth2/authorize?response_type=<?php echo response_type; ?>&client_id=<?php echo client_id; ?>&scope=<?php echo scope; ?>">LOGIN</a> </body> </html> <?php } ?> 

Мне не хватало заголовка Authorization, который также требовал строку base64

 $auth_header = array("Authorization: Basic " . base64_encode(client_id.":".client_secret)); 

Добавление этого в мой заголовок позволило мне решить эту проблему.