自动获取已签名的请求令牌


Automatically get signed request token

根据我对OAuth的理解,流程是:

  1. 获取未签名的请求令牌
  2. 通过获取用户授权获取已签名的请求令牌
  3. 获取访问令牌

我想使用php-ccurl来自动获得签名的请求令牌。一旦我有了未签名的请求令牌,我想要一个函数来访问授权url,登录并返回授权的请求令牌。基本上模仿用户名和密码的基本授权。这可能吗?

我知道这不可能是一个通用的解决方案,因为curl postdata必须是特定于网站的。

感谢

这里有一些代码,我希望它能帮助你展示我正在尝试做什么

function login($username, $password) {
    $url = 'https://www.scoop.it/oauth/authorize?' . http_build_query(array('oauth_token' => $requestToken['oauth_token'], 'oauth_callback' => $callbackurl));
    $postdata = "email=".$username."&password=".$password; 
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);   
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

    $response = curl_exec($ch)
    curl_close ($ch);
}

您的脚本需要:

  1. 获取未经授权的请求令牌
  2. 使用令牌和回调URL将用户重定向到授权URL

您已经完成了步骤1;获取访问令牌。现在,您必须告诉用户的浏览器重定向到授权URL。

header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$AUTHORIZE_URL_WITH_TOKEN);

请记住,您必须在发生第一个print()echo()之前发送所有标头。