Я использую Лузитанская библиотека 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?
Наконец, я настроил функцию повторного использования токенов доступа.
Я получаю токен из файла конфигурации 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 для хранения и получения токенов доступа. Вы также можете использовать базу данных или текстовый файл для хранения и получения токенов. Оно работает! Надеюсь, это будет полезно для кого-то.
Других решений пока нет …