2015-05-19 14:21:26
前两天又有友友问到怎么整合Ucenter实现同步登陆退出,我把以前的资料找了出来,又给这厮重新示范了一遍。其实整合的过程只是调试比较麻烦罢了,原理并不是很复杂,下面我就简单说说原理。
1. 会员登陆的时候,通知UCenter服务端,UCenter服务再通知到其他通信成功的应用,其他应用接收到请求后,做相应的处理。
2.会员退出的时候原理基本上很登陆是一样的,注意,所有应用间的通信都是通过UCenter服务端的。看下图:
当然,说起来是很简单,但实际操作起来还是有那么几个步骤的,尤其是因为调试起来麻烦,所以,一般情况下很多人都觉得api有问题或者无从下手的感觉。下面我个人就详细的讲解下如何整合UC。
1、首先下载UC包和discuz,这里我下载的是UC1.6版本的,和DiscuzX2.5 ,既然是自己的网站整合UC,那当然不用DZ自带的Uc了。。所以,我们先安装好Uc service ,打开uc1.6压缩包解压upload文件到网站根目录,改名为ucservice (名字自己取),浏览器里代开http://根目录/ucservice/install/ ,按提示进行安装,安装完成后,进入后台管理。
a)添加自己的网站应用。找到左侧应用管理,添加新应用,如下图:
如没有意外,返回应用列表后显示的是通信失败。很正常,因为我们的应用还没有UC客户端。。打开下载的uc1.6,解压文件advanced/uc_client ,
advanced/examples/api 目录解压到网站根目录。
新建并打开config.inc.php,到Ucservice后台复制该应用的配置到文件里。然后打开api/uc.php 将config.inc.php的路径对应上你的配置文件路径(如果config.inc.php在根目录就不用修改,如果config.inc.php 有命令冲突,也可以改为别的文件名,只要uc.php导入时是正确的路径即可),下面说明下各个配置参数的大致含义:
define(‘UC_CONNECT’, ‘mysql’); //这个就不解释了。。。打开client/client.php 读一下上面几行就明白上面作用
define(‘UC_DBHOST’, ‘localhost’); //这个是只UCservice 数据库主机的密码
define(‘UC_DBUSER’, ‘root’); // 数据库用户名
define(‘UC_DBPW’, ”); //数据库密码
define(‘UC_DBNAME’, ‘bakeso’); //数据库名
define(‘UC_DBCHARSET’, ‘utf8′); //数据库编码
define(‘UC_DBTABLEPRE’, ‘`bakeso`.uc_’); //UC表前缀
define(‘UC_DBCONNECT’, ’0′); //是否连接
define(‘UC_KEY’, ’1caap5ymtIxRHrTvy6I72+KRtpkMc41ykr5DFvE’); // UCkey
define(‘UC_API’, ‘http://bakeso.com/ucservice’); //ucservice地址
define(‘UC_CHARSET’, ‘utf-8′);
define(‘UC_IP’, ”);
define(‘UC_APPID’, ’1′); //应用ID
define(‘UC_PPP’, ’20′); //
如果所有的参数都正确的话,一般情况下到Ucservice后台查看应用,是通信成功了的。如果没有,请检查配置文件的路径在uc.php是否正 常。Uc整合之所以比较麻烦,就是因为调试不方便,以及不同版本也会有不同的现象。如果确认自己的步骤没有任何问题,请尝试解压uc1.6里的 examples文件夹,这是示例程序,按照上面的步骤添加好应用,看能否通信成功,比较一下自己的应用进行调试。
接下来就是安装discuz,为什么是discuz,这个就不解释了。如果你愿意,完全可以用ecshop,dede,uchome等等。。但我们的目的 只是为我们自己网站整合上UC client, 所以我们选discuz做测试。安装discuz可以在ucservice 后台添加应用,然后选择URL安装,填上discuz的安装路径进行安装,如果没有意外,dicuz安装成功后,uc后台就显示通信成功了!(注 意:discuz的版本和uc的版本问题).