Dropbox SDK с использованием переполнения стека

Я пытаюсь настроить базовый пример аутентификации, используя Dropbox PHP, и у меня не получается. Когда я запускаю свой index.php, меня перенаправляют на логин dropbox. Затем, как только я войду в систему, я буду перенаправлен обратно на dropbox_finish.php и я имею state а также code например.:

?state=bKwCAATDb7A5JLHmCj8wgA%3D%3D&code=YQb8c261HlAAAAAAAAAAXAK1OOk6DqK-RtqnJ_SG0F0

Чем я получаю эту ошибку в:

[Пн 25 мая 00: 27: 39.074399 2015] [: ошибка] [pid 5459] [клиент
127.0.0.1:44489] Неустранимая ошибка PHP: необработанное исключение «Dropbox \ Exception_BadRequest» с сообщением «HTTP статус
400 \ n {«error_description»: «Неверный client_id или client_secret»,
«error»: «invalid_client»} ‘в
/var/www/php/oauth/vendor/dropbox/dropbox-sdk/lib/Dropbox/RequestUtil.php:250\nStack
след: \ п # 0
/var/www/php/oauth/vendor/dropbox/dropbox-sdk/lib/Dropbox/WebAuthBase.php(39):
Dropbox \ RequestUtil :: unexpectedStatus (Object (Dropbox \ HttpResponse)) \ п # 1
/var/www/php/oauth/vendor/dropbox/dropbox-sdk/lib/Dropbox/WebAuth.php(270):
Dropbox \ WebAuthBase -> _ отделка ( ‘YQb8c261HlAAAAA …’,
https: //oauth.d…«) \ П # 2
/var/www/php/oauth/web/dropbox_finish.php(4):
Dropbox \ WebAuth-> finish (Array) \ n # 3 {main} \ n брошенный в
/var/www/php/oauth/vendor/dropbox/dropbox-sdk/lib/Dropbox/RequestUtil.php
на линии 250

Я пытался установить что-то как можно более простое, чтобы начать с некоторого времени, но безрезультатно. Любая помощь будет оценена.

Это мой код index.php:

include_once __DIR__.'/../app/start.php';
include_once __DIR__.'/../app/dropbox_auth.php';

затем start.php:

session_start();
$_SESSION['user_id'] = 1;
require_once __DIR__.'/../vendor/autoload.php';
$key = "fttwagu78r37ped";
$secret = "fttwagu78r37ped";
$GLOBALS['app_name'] = "oauth-php/1.0";
$GLOBALS['redirectURI'] = "https://oauth.dev/dropbox_finish.php";
$GLOBALS['HomeURI'] = "https://oauth.dev";

$appInfo = new Dropbox\AppInfo($key, $secret);

//CSRF Cross Site Request Forgery protection.
$csrfTokenStore = new Dropbox\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');

$webAuth = new Dropbox\WebAuth($appInfo, $GLOBALS['app_name'], $GLOBALS['redirectURI'], $csrfTokenStore);

$db = new PDO('mysql:host=localhost;dbname=oauth','root','root');

$user = $db->prepare("SELECT * FROM user WHERE id = :user_id");
$user->execute(['user_id' => $_SESSION['user_id']]);
$user = $user->fetchObject();

Файл dropbox_auth.php:

if ($user->token){
$client = new Dropbox\Client($user->token, $GLOBALS['app_name'], 'UTF-8');
$client->getAccountInfo();
} else {
$authURL = $webAuth->start();
header("Location: $authURL");
exit();
}

Готовый файл Dropbox dropbox_finish.php:

require_once "../app/start.php";
list($accessToken) = $webAuth->finish($_GET);
$store = $db->prepare("UPDATE user SET token = :dropbox_token". "WHERE id = :user_id");
$store->execute(['dropbox_token' => $accessToken,
'user_id' => $_SESSION['user_id']]);
header("Location: ".$GLOBALS['HomeURI']);

В качестве дополнительной детали, просто сказать, что у меня есть это в MySQL:

+--------------------+
| Database           |
+--------------------+
| oauth              |

+-----------------+
| Tables_in_oauth |
+-----------------+
| user            |
+-----------------+

+----+--------------------+-------+
| id | username           | token |
+----+--------------------+-------+
|  1 | [email protected] |       |
+----+--------------------+-------+

Что я делаю неправильно?
Спасибо.

0

Решение

Вы уверены, что ваш идентификатор клиента или секрет клиента верны? Ошибка ясно говорит, что один из них не прав.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]