尝试Twitter“将用户发送到授权”步骤(PHP OAuth)时出现错误403

时间:2011-10-26 19:28:23

标签: php twitter oauth

我花了很多时间在这上面,并且不能为我的生活找出问题所在。我正在编写自己的Twitter网络应用程序。我下载了我正在使用的OAuth PHP库。一切都设置正确。

我做了第1步和“获取请求令牌”。我得到了一个正确的回复,其中包含一个令牌,令牌秘密以及确认为TRUE的回调。

现在我继续执行“将用户发送到授权”的下一步,并将oauth_token参数传递给请求。请求已发送并重定向到Twitter页面,但是当它到达时显示错误消息:

代码403的异常请求失败: 哇那里! 此页面需要一些未提供的信息。请返回发送到此页面的网站,然后重试......这可能是一个诚实的错误。 问题是什么??错误消息不是很有帮助。根据推特403意味着该请求被理解但被拒绝。我真的被困在这里,并希望得到这方面的帮助。

这是代码的样子(我显然用########替换了我的令牌和密钥,所以如果有人想用自己的密钥在本地测试,只需替换# ########值:

<?php

    include_once "scripts/OAuth/OAuthStore.php";
    include_once "scripts/OAuth/OAuthRequester.php";

    // register at http://twitter.com/oauth_clients and fill these two 
    define("TWITTER_CONSUMER_KEY", "#############");
    define("TWITTER_CONSUMER_SECRET", "#############");

    define("TWITTER_OAUTH_HOST","https://api.twitter.com");

    define("TWITTER_REQUEST_TOKEN_URL", TWITTER_OAUTH_HOST . "/oauth/request_token");
    define("TWITTER_AUTHORIZE_URL", TWITTER_OAUTH_HOST . "/oauth/authorize");
    define("TWITTER_ACCESS_TOKEN_URL", TWITTER_OAUTH_HOST . "/oauth/access_token");
    define("TWITTER_PUBLIC_TIMELINE_API", TWITTER_OAUTH_HOST . "/statuses/public_timeline.json");
    define("TWITTER_UPDATE_STATUS_API", TWITTER_OAUTH_HOST . "/statuses/update.json");

    define('OAUTH_TMP_DIR', function_exists('sys_get_temp_dir') ? sys_get_temp_dir() : realpath($_ENV["TMP"])); 

    // Twitter test
    $options = array('consumer_key' => TWITTER_CONSUMER_KEY, 'consumer_secret' => TWITTER_CONSUMER_SECRET);
    OAuthStore::instance("2Leg", $options);

try
{
// Obtain a request object for the request we want to make
$request = new OAuthRequester(TWITTER_REQUEST_TOKEN_URL, "POST");
$result = $request->doRequest(0);
parse_str($result['body'], $params);

list($token, $secret, $status) = explode('&', $result['body']);

// now make the request.
$request = new OAuthRequester(TWITTER_AUTHORIZE_URL, 'POST', $token);

$result = $request->doRequest();
}
catch(OAuthException2 $e)
{
echo "Exception " . $e->getMessage();
}

?>

0 个答案:

没有答案