手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:ucapi

UCAPI.com再次恢复

http://ucapi.com恢复啦。
以前是放在小茗的虚拟主机上,结果他的虚拟主机到期了,我也就撤了出来。
本来是想扔到http://kkread.com的机器上的,结果,被我折腾nginx没成功,连带http://kkread.com也打不开了。。

最后,我还是重新购买了一台VPS,将ucapi网站扔在上面了。感觉速度没以前快。不过没办法,忍忍了。。。

之所以扔在国外的VPS上面,主要还是因为备案太麻烦了,说不定过两天本站也会迁走,其实心里很难过,但没办法。备案太麻烦了,而且从心里对有些事有点抵触。

Tags: ucenter, uc, ucapi

康盛系列中同步登录的注意事项

本文首发在www.ucapi.com,康盛系列中同步登录的注意事项,呵呵。在这里 也留一份啦

康盛目前的产品基本上都使用了ucenter,甚至一些已经卖掉的产品中也有使用ucenter的,比如Ecmall等。

其实很多时候你会发现,你明明在A系统中登录了。但是却没有登录到B系统。这其中有一部分是网页在跳转的时候,代码没有来得及执行完毕导致,但也有一部分是因为这几个系统中的接口有点小小的问题。

现在,我们来还原一下问题产生的情景。

1、到论坛注册一个用户,登录。理论上,这时候康盛所有的产品应该都能够登录了,因此这个注册用户已经在ucenter的用户表中了。

2、打开supesite,你会发现,他会提示您需要登录。再打开uchome,也是如此的提示。一个冷冰冰的登录窗口依然显示在那里。

3、打开ecmall,你会发现,咦,怎么登录了?真奇怪啊。为什么有两个系统没有登录,一个系统登录了?

4、现在,我们重新一一登录supesite和uchome。然后退出系统。再在论坛登录,你会发现,咦。怎么都登录了?原来显示登录窗口的supesite和uchome都已经登录了,这是什么呢?

5、现在我们打开这两个系统的接口仔细分析一下,同时再打开这两个程序的登录程序。突然间,你就恍然大悟。原来这两个系统在登录的时候,都会有一个 判断,如果该系统自身的用户表里没有这条记录,那么他们都会先判断用户是否存在,如果确实存在,则往自身的用户表里插入一条记录。然后再进行登录。

6、然而这两个系统的接口文件uc.php中的同步登录函数中,却没有这一条。而只是仅仅的判断是否存在session库中,来判断是否登录。 supesite中还会注册一个activetyuser这样一个cookie,以期你在打开supesite的时候,如果有这个cookie就自动插入 一条记录【然而,这只是虚晃一枪,根本就没有执行过】

7、再回首,我们看一下ecmall,人家写的就简单了。同样的原理,生成一个cookie,在打开页面时,如果有cookie存在,就生成用户【它是确确实实执行了】。

现在明白问题所在了吧?知道这些问题,你其实可以自己在这个同步登录的函数里加上相应的代码就行了【这里就不写了,看官们,自己练练手吧】

最后再说一点小问题,这个其实说的是uchome,uchome除了用户名密码登录外,还有一个自定义问题。所以即使你同步登录了,但如果设置了自定义问题,进入uchome的时候,还是需要再回答一下这个自定义问题。

Over,全部解释完毕。

Tags: 同步登录, ucapi, 康盛

四步实现客户软件与ucenter通讯

本文首发于www.ucapi.com,下篇预告:supesite与uchome等应用在同步登录时注意事项

原文如下:

如果你写了一个WEB程序,你又想与ucenter共用一个用户库,你会怎么做?

来吧,让我告诉你,只要几个简单的步骤就行了。

1、先到ucenter administrator建一个应用,在应用里配置完你的项目的地址,在UC_KEY那里随便输入一些字符串,越长越好。【在这里有配置通讯文件的名 称,好象是提示你在api目录下,你可以定义一个,默认是uc.php】。然后你会一直发现应用列表中,该应用一直是通讯失败。

2、生成应用后,在应用详情的最下方有一个textarea框,这个就是系统帮你生成的连接ucenter的配置文件 。

3、在您的项目根目录下建立一个api目录,里面放上刚才说的通讯文件,默认是uc.php

在通讯文件里定义一些常量,可以从uchome、supesite、等里面拷贝出来,其实就是一些返回值 的常量。

加载刚才ucenter administrator所生成的配置文件。

到comsenz的任何一个程序中拷贝一下authcode函数(一般在common.inc.php或者global.inc.php中)

写上简单的判断代码:

PHP代码
  1. $code = $_GET['code'];   //取得GET回来的code变量  
  2.   
  3. //经过authcode解码后,转化为一个数组,这个数组里其实就有一些简单的验证信息,如:时间,传递过来的操作等  
  4. parse_str(authcode($code, ‘DECODE’, UC_KEY), $get);  
  5.   
  6. //如果当前时间大于传递来的时间1小时,返回超时  
  7. if(time() – $get['time'] > 3600) {  
  8.     exit(’Authracation has expiried’);  
  9. }  
  10.   
  11. //如果转换出来的$get变量是空值 ,那肯定是出错了  
  12. if(emptyempty($get)) {  
  13.     exit(’Invalid Request’);  
  14. }  
  15.   
  16. //获取传递过来的操作  
  17. $action = $get['action'];  
  18.   
  19. //写上一个简单的判断  
  20. if ($action == ‘test’){  
  21.     exit(API_RETURN_SUCCEED);  
  22. }  

 

4、写完这样的代码后,去ucenter管理中心看一下应用列表,是不是通讯成功了?

其实那个通讯成功,就是发送了一个 action = test过来。所以当返回1的时候就直接成功了。

不过,由于exit();函数自身的状态,如果参数是字符串,则会直接输出,而如果参数是整数,则仅仅用来表示退出程序,而整数则代表了error code。

If status is an integer, that value will also be used as the exit status. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.

这时候,你就会发现,你必须得使用exit(”1″);才会真正的输出1。【当然,这是PHP的基础,与通信问题不大,在这里提出来,只是为了防止你明明写了exit(1),却不会输出而在那里拼命调试】

OK,到现在为止,一个简单的通讯就完成了。如果你需要更多的功能,可以参考一下server究竟提供了哪些服务,然后写上针对性的代码和判断就可以了。

本文没图,但我相信,说的应该够明白了吧?

Tags: ucenter, ucapi

ucapi手册

搜索ucenter的手册时,发现了ucapi.com网站,上面已经有一些内容了,什么使用手册官方API官方例程之类的。
以前下载的都是离线版的chm文件 ,经常会在硬盘里找不到。现在有一个在线版的。方便很多。查起来也很容易

呵呵。也算是推荐一下了。。
如果是用comsenz系统的人,估计都会用到ucenter吧。那么ucapi这样的东西就必须要看了

Tags: ucenter, api, ucapi