UCenter 是国内Discuz公司开发的一个用户管理中心,应该说现在是腾讯公司的。早年被腾讯收购。现在国内对于UCenter使用还是非常多的。只要是国内使用Discuz产品的,基本没有不适用UCenter的。
今天研究了下,如何与UCenter实现通信,并且用户同步.
首先下载UCenter安装包 :去官网下载最新版本的包 http://www.comsenz.com/downloads/install/ucenter#down_open
解压后会有4个文件夹
- advanced
- readme
- upload
- utilities
upload文件夹,顾名思义,需要我们上传,其实这个就是用户中心的安装包。自己安装吧。直接访问首页, 按照提示就能安装了。这个很简单,不用说。
然后访问advanced文件夹,可以看到3个文件夹。我们需要的是uc_client 和examples目录下的api文件夹,将uc_client和examples目录下的api文件夹 拷贝至codeigniter 根目录下.
填好需要填写的信息后,
然后将滚动条拉到也蛮底部.
将 第三张图片中,红色框框里面的代码复制到api目录下的uc.php文件中.
然后将30行和79行的代码替换成
<?php
if(!defined('IN_UC')) {
error_reporting(0);
set_magic_quotes_runtime(0);
defined('MAGIC_QUOTES_GPC') || define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
// require_once DISCUZ_ROOT.'./config.inc.php';
$_DCACHE = $get = $post = array();
$code = @$_GET['code'];
parse_str(_authcode($code, 'DECODE', UC_KEY), $get);
if(MAGIC_QUOTES_GPC) {
$get = _stripslashes($get);
}
$timestamp = time();
if($timestamp - $get['time'] > 3600) {
exit('Authracation has expiried');
}
if(empty($get)) {
exit('Invalid Request');
}
$action = $get['action'];
require_once DISCUZ_ROOT.'./uc_client/lib/xml.class.php';
$post = xml_unserialize(file_get_contents('php://input'));
if(in_array($get['action'], array('test', 'deleteuser', 'renameuser', 'gettag', 'synlogin', 'synlogout', 'updatepw', 'updatebadwords', 'updatehosts', 'updateapps', 'updateclient', 'updatecredit', 'getcredit', 'getcreditsettings', 'updatecreditsettings', 'addfeed'))) {
$uc_note = new uc_note();
echo $uc_note->$get['action']($get, $post); exit();
} else {
exit(API_RETURN_FAILED);
}
//note include 通知方式 } else { exit(); }
?>
刷新下用户中心的页面.通信成功了~!