我花了很多时间在这上面,并且不能为我的生活找出问题所在。我正在编写自己的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();
}
?>