使用现有访问令牌和访问令牌机密进行 Oauth API 调用


Make Oauth API calls with existing Access Token and Access Token Secret

我正在使用Lusitanian PHP Oauth库(https://github.com/Lusitanian/PHPoAuthLib(。

用户在我的应用程序中获得授权后,我收到了"访问令牌"和"访问令牌机密"的值。现在有了这些值,我想对 API 进行经过身份验证的调用。如何使用访问令牌、访问令牌机密以及使用者密钥和使用者机密的值进行调用?我不想每次都让用户授权,为他进行 API 调用。有人有想法吗?

我的要求是这样的:

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

我已经尝试了Firefox的REST客户端和Chrome的高级REST客户端,它们成功地执行了OAuth调用,只有访问令牌,访问令牌秘密,消费者密钥和消费者密钥的值。

同样,我想从我的PHP代码执行OAuth调用。我正在使用的库依赖于 Session 来存储这些值(这需要用户每次登录(并构建授权标头和签名。有没有办法从我的端手动构建签名和授权标头并进行 OAuth 调用?

最后,我调整了重用访问令牌的功能。在将令牌存储在其中后,我正在从配置 php 文件中获取令牌。

令牌也可以存储在本地 PHP 会话中并从中读取。

用于存储令牌的代码位于Service/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 发出请求时,您可以修改 request(( 函数中的代码以使用会话中的令牌:

改变:

$token = $this->storage->

retrieveAccessToken($this->service(((;

自:

$token = 取消序列化($_SESSION['access_token'](;

这样,我可以使用自定义 PHP 会话来存储和检索访问令牌。还可以使用数据库或文本文件来存储和检索令牌。它有效!希望它对某人有用。