杭州神话信息技术有限公司
标题:
pw8通过ucenter整合记事狗的插件~刚看到有人要的,发出来共享下~
[打印本页]
作者:
小黑子
时间:
2011-1-25 13:34:11
标题:
pw8通过ucenter整合记事狗的插件~刚看到有人要的,发出来共享下~
本帖最后由 小黑子 于 2011-1-25 13:47 编辑
这个插件只适合pw8版本,pw8.3我还没有试过~谁有兴趣谁试一下~
插件包里面gbk和utf8版本的都有,大家选择使用~
首先上传uc_client 文件夹到PW的根目录,你可能要问PW目录下不是有一个uc_client么?我要说的是,直接删除掉,我们使用ucenter安装包里面的那个。uc_client 文件夹在UCenter安装包里可以找到(我发的插件包里面也有)述。
复制以下代码并修改相关参数(这段代码也可以在插件包里面api/uc.php找到~):
<?php
define('UC_DIR','../uc_client');
/*
** 以下代码直接到UCenter后台相关应用里复制过来替换掉。不明白?没关系,往下面看 UCenter与PW通信具体步骤
*/
define('UC_CONNECT', '');
define('UC_DBHOST', '');
define('UC_DBUSER', '');
define('UC_DBPW', '');
define('UC_DBNAME', '');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '');
define('UC_DBCONNECT', '0');
define('UC_KEY', ''); //这里与PW后台的保持一致
define('UC_API', '');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '');
define('UC_APPID', '');
define('UC_PPP', '');
/*
** END
*/
define('PW_URL', '您的PW论坛地址'); // 后缀不要带 / 如:http://bbs.abc.com
define('API_RETURN_SUCCEED', '1');
define('API_RETURN_FAILED', '-1');
$code = $_GET['code'];
if($code && include(UC_DIR.'/client.php')){
$get = array();
parse_str(uc_authcode($code, 'DECODE', UC_KEY), $get);
if(empty($get)) {
exit('Invalid Request');
}
if(time() - $get['time'] > 3600) {
exit('Authracation has expiried');
}
$action = $get['action'];
$uc_note = new uc_note();
if(method_exists($uc_note,$action)){
$uc_note->$action($get);
}else{
exit(API_RETURN_FAILED);
}
}
class uc_note{
function synlogin($get) {
$userdb = array(
'username' => $get['username'],
'password' => $get['password'],
'email' => $get['email'],
'time' => time(),
);
$this->passport('login',$userdb);
}
function synlogout($get){
$this->passport('quit','');
}
function passport($action,$userdb,$forward = ''){
if($action == 'login'){
foreach($userdb as $key=>$val){
$userdb_encode .= $userdb_encode ? "&$key=$val" : "$key=$val";
}
}
$userdb_encode = str_replace('=','',$this->strCode($userdb_encode));
$verify = md5($action.$userdb_encode.$forward.UC_KEY);
header('Location: '.PW_URL.'/passport_client.php?action='.$action.'&userdb='.rawurlencode
($userdb_encode).'&forward='.rawurlencode($forward).'&verify='.$verify);
exit;
}
function strCode($string,$action='ENCODE'){
$action != 'ENCODE' && $string = base64_decode($string);
$code = '';
$key = substr(md5($_SERVER["HTTP_USER_AGENT"].UC_KEY),8,18);
$keylen = strlen($key); $strlen = strlen($string);
for ($i=0;$i<$strlen;$i++) {
$k = $i % $keylen;
$code .= $string[$i] ^ $key[$k];
}
return ($action!='DECODE' ? base64_encode($code) : $code);
}
function test($get){
exit(API_RETURN_SUCCEED);
}
}
?>
uc.php的代码修改好后,将插件包里面的api和uc_client文件夹上传到pw根目录~
UCenter与PW通信具体步骤
1.UCenter配置
进UCenter后台->应用管理->添加新应用->自定义安装
应用名称:PW论坛
应用URL:PW论坛地址
通信密钥:与PW后台 第三方整合的密钥一致
应用类型:其他
是否开启同步登录:是
是否接受通知:是
然后提交,成功后复制 应用的 UCenter 配置信息:
里面的内容 替换以上配置信息。
2.PW配置
进后台->应用中心->插件管理->通行证
通行证:开启
通行证私有密钥:填UC里设置的密钥
将本系统作为:客户端
//UC其他应用的地址都行,只要能同步登录退出。
通行证服务器地址:可以写记事狗微博的地址
http://t.jishigou.net
(注意后面不要加/)
通行证登录地址:记事狗的登陆地址~如:index.php?mod=login
通行证退出地址:记事狗的退出地址~如:index.php?mod=login&code=logout
通行证注册地址:记事狗的注册地址~如:index.php?mod=member
此时再看应用:通信成功!
有啥问题请跟帖提出~
作者:
byev
时间:
2011-1-25 13:57:06
高手啊 不错啊!!
作者:
bts7721384
时间:
2011-1-28 13:39:24
回复
小黑子
的帖子
找这个很久了,测试一下看看,谢了。。
作者:
小黑子
时间:
2011-2-12 16:44:41
这个帖子没人顶啊/。。。大家都不需要吗?
欢迎光临 杭州神话信息技术有限公司 (http://www.cenwor.com/)
Powered by Discuz! X2