【发布时间】:2014-11-30 20:12:25
【问题描述】:
我正在尝试使用 Yahoo 登录用户。我正在使用 Yos 社交 php5 sdk。它请求许可,然后死于错误 token_rejected。
这就是我回来的全部。这就是我的代码的样子(注意:我在 codeigniter 中使用它):
function yahoo($url) {
if($url == 'login') {
$url = base_url('user/yahoologin');
} else {
$url = base_url('user/yahooregister');
}
set_include_path(APPPATH . "libraries/Yahoo");
require_once APPPATH . "libraries/Yahoo/OAuth/OAuth.php";
require_once APPPATH . "libraries/Yahoo/Yahoo/YahooOAuthApplication.class.php";
$CONSUMER_KEY = 'consumerkey--';
$CONSUMER_SECRET = 'secret';
$APPLICATION_ID = 'appid';
$CALLBACK_URL = $url;
$oauthapp = new YahooOAuthApplication($CONSUMER_KEY, $CONSUMER_SECRET, $APPLICATION_ID, $CALLBACK_URL);
# Fetch request token
$request_token = $oauthapp->getRequestToken($CALLBACK_URL);
# Redirect user to authorization url
$redirect_url = $oauthapp->getAuthorizationUrl($request_token);
redirect($redirect_url);
}
public function yahoologin() {
set_include_path(APPPATH . "libraries/Yahoo");
require_once APPPATH . "libraries/Yahoo/OAuth/OAuth.php";
require_once APPPATH . "libraries/Yahoo/Yahoo/YahooOAuthApplication.class.php";
$CONSUMER_KEY = 'consumerkey--';
$CONSUMER_SECRET = 'secret';
$APPLICATION_ID = 'appid';
$CALLBACK_URL = base_url("user/yahoologin");
$oauthapp = new YahooOAuthApplication($CONSUMER_KEY, $CONSUMER_SECRET, $APPLICATION_ID, $CALLBACK_URL);
# Fetch request token
$request_token = $oauthapp->getRequestToken($CALLBACK_URL);
# Exchange request token for authorized access token
$access_token = $oauthapp->getAccessToken($request_token, $_REQUEST['oauth_verifier']);
# update access token
$oauthapp->token = $access_token;
# fetch user profile
$profile = $oauthapp->getProfile();
var_dump($profile);
}
我得到的唯一错误是:
YahooOAuthAccessToken Object
(
[key] =>
[secret] =>
[expires_in] =>
[session_handle] =>
[authorization_expires_in] =>
[yahoo_guid] =>
[oauth_problem] => token_rejected
)
那是在$access_token = $oauthapp->getAccessToken($request_token, $_REQUEST['oauth_verifier']); 行。有什么帮助可以让这个工作吗?我真的认为雅虎的 API 是有史以来最糟糕的。
【问题讨论】:
标签: php codeigniter access-token guid yahoo-api