Example #1
0
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();
    }
}