function weiboCallback($type, $lastkey) { if ($lastkey) { $last_key = $lastkey; } else { $last_key = AuthCallback($type); } if ($last_key) { // 如果成功取得last_key $db =& JFactory::getDBO(); // 先将数据库中原有数据无论有无均删除 $sql = "DELETE FROM #__weibo_auth WHERE type='" . $type . "'"; $db->setQuery($sql); $db->Query(); // 将取得的last_key写入数据库中 $sql = "INSERT INTO #__weibo_auth(oauth_token,oauth_token_secret,name,type ) VALUES ('{$last_key['oauth_token']}','{$last_key['oauth_token_secret']}','{$last_key['user_id']}','{$type}') "; $db->setQuery($sql); $db->Query(); // 显示已经成功获得授权的页面 if (!$lastkey) { HTML_weibo::finishedWeiboAuth($last_key, $type); } } else { // 如果未成功取得last_key,显示出错的页面 HTML_weibo::errorWeiboAuth($last_key, $type); } }
/** * 当新浪授权正常完成时,将转到task=sinacallback回调,这时调用这个函数 */ function sinaCallback() { // 取得新浪Auth对象 $o = new WeiboOAuth(WB_AKEY, WB_SKEY, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']); // 获取last_key $last_key = $o->getAccessToken($_REQUEST['oauth_verifier']); if ($last_key) { // 如果成功取得last_key $db =& JFactory::getDBO(); // 先将数据库中原有数据无论有无均删除 $sql = "DELETE FROM #__weibo_auth WHERE type='sina'"; $db->setQuery($sql); $db->Query(); // 将取得的last_key写入数据库中 $sql = "INSERT INTO #__weibo_auth(id,oauth_token,oauth_token_secret,name,type ) VALUES ('2','{$last_key['oauth_token']}','{$last_key['oauth_token_secret']}','{$last_key['user_id']}', 'sina') "; $db->setQuery($sql); $db->Query(); // 显示已经成功获得授权的页面 HTML_weibo::finishedSinaAuth($last_key); } else { // 如果未成功取得last_key,显示出错的页面 HTML_weibo::errorSinaAuth(); } }