我尝试使用PHP OAuth library,特别是getRequestToken()方法。我发现的一个问题是我无法在我的请求中添加自定义参数。我想添加参数“范围”,但我找不到任何方法来做到这一点。如果我尝试将参数添加到URL,似乎所有其他参数都失败了:
$oauth->getRequestToken( "http://www.api.com/oauth/request_token?scope=email", "http://www.mypage.com/callback.php" );
这是一个正在运行的API调用的完整示例,但没有所需的自定义参数:
$oauth = new \OAuth( "consumer_key", "consumer_secret" );
$oauth->setNonce( sha1( \Str::Random( 10 ).time() ) );
$oauth->setTimestamp( time() );
try
{
$oauth->getRequestToken( "http://www.api.com/oauth/request_token", "http://www.mypage.com/callback.php" );
}
catch ( \OAuthException $e )
{
exit( $oauth->getLastResponse() );
}
那么:如何使用PHP OAuth库向OAuth调用添加自定义参数?
答案 0 :(得分:0)
如果有人遇到这个问题,我已经弄明白了什么。解决方案是“fetch”和“setAuthType”方法的组合。方法fetch()允许自定义数据作为第二个参数。这样我可以像这样添加我的“范围”参数:
$oauth->fetch( "http://www.api.com/oauth/request_token", array( "scope" => "email" ), OAUTH_HTTP_METHOD_GET );
结合方法setAuthType()使其成为可能。 setAuthType()需要一个名为OAUTH_AUTH_TYPE_ *的常量。为此,我添加了常量OAUTH_AUTH_TYPE_URI,它将OAuth参数附加到请求URI。