Выполните вызовы API Oauth с помощью существующего токена доступа и секрета доступа

Я использую Лузитанская библиотека PHP Oauth (https://github.com/Lusitanian/PHPoAuthLib).

После того как пользователь авторизовался в моем приложении, я получил значения Access Token и Access Token Secret. Теперь с этими значениями я хотел бы сделать аутентифицированные вызовы API. Как сделать вызовы со значениями Access Token, Access Token Secret, а также со значениями Consumer Key и Consumer Secret? Я не хочу каждый раз авторизовывать пользователя, делать ему вызовы API. У кого-нибудь есть идея?

Мой запрос выглядит так:

$ result = json_decode ($ service-> request (‘/ users / getDetails’), true
);

Я попробовал REST-клиент Firefox и Advanced REST-клиент Chrome, которые успешно выполняют вызовы OAuth, используя только значения Access Token, Access Token Secret, Consumer Key и Consumer Secret.

Точно так же я хотел бы выполнить вызовы OAuth из моего кода PHP. Библиотека, которую я использую, зависит от Session для хранения этих значений (что требует от пользователя каждый раз вход в систему) и построения заголовка авторизации и подписи. Есть ли способ, которым я могу вручную создать заголовок Signature and Authorization и выполнить вызовы OAuth?

0

Решение

Наконец, я настроил функцию повторного использования токенов доступа.
Я получаю токен из файла конфигурации php, после того, как я храню в нем токен.

Токен также может быть сохранен в локальной сессии PHP и считан из него.

Код для хранения токена находится в Услуги / AbstractService.php:

$ this-> storage-> storeAccessToken ($ this-> service (), $ token);

Вы можете изменить его следующим образом, чтобы сохранить токен в переменной сеанса:

if(!isset($_SESSION['access_token'])) {
$token = new StdOAuth1Token();

$token->setRequestToken($access_token);
$token->setRequestTokenSecret($access_token_secret);
$token->setAccessToken($access_token);
$token->setAccessTokenSecret($access_token_secret);

$token->setEndOfLife(StdOAuth1Token::EOL_NEVER_EXPIRES);
$_SESSION['access_token'] = serialize($token);
}

Затем при запросе к API вы можете изменить код в запрос() функция для использования токена из вашей сессии:

Изменить:

$ token = $ this-> storage-> retrieveAccessToken ($ this-> service ());

Для того, чтобы:

$ token = unserialize ($ _ SESSION [‘access_token’]);

Таким образом, я мог бы использовать пользовательские сессии PHP для хранения и получения токенов доступа. Вы также можете использовать базу данных или текстовый файл для хранения и получения токенов. Оно работает! Надеюсь, это будет полезно для кого-то.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector