UCenter与Java语言的整合经验 - 编程入门网
UCenter与Java语言的整合经验时间:2011-01-22 javaeye Snow_Young1、UCenter建议使用GBK版本,原因是PHP4/5对UNICODE(UTF-8)的支持不足,分解出来的数字与其他支持UNICODE的语言不同,以至于authcode的时候将出现偏差,非拉丁文本将不匹配,即导致中文用户名无法正常同步。但其他语言的API可以使用UTF-8,再在 authcode之前将文本转换成GBK即可。 2、java下有一个UCenter的API,可以较方便的在Java环境下调用UCenter接口,地址是 http://code.google.com/p/discuz-ucenter-api-for-java/,创始人是ping.china。 Snow_Young也有重新开发一个API的想法,以更符合Java的开发习惯,同时希望可以找到途径以解决UTF-8的问题。 3、登入、登出等操作的同步,使用post方式调用UCenter的API接口,如果成功,将返回一段代码,其代码输出到页面将达到跨域请求各应用,应用获得请求后自行进行cookie或session的操作。 4、注册等非同步操作,将不会自动进行同步操作,其他应用在调用数据前应先检查UCenter时候存在更新信息,并将更新信息同步到自身数据库中。例如注册操作,如果用户在例如Java端注册,那么Java端将告诉UCenter注册信息,UCenter将信息存入UCenter数据库中,此时将不进行同步。之后若用户在Discuz!论坛登陆,Discuz!首先将查看自身数据库,若没有,再去请求UCenter获得更新信息,并询问用户是否激活,待用户确认后,才将用户的资料写入Discuz!论坛数据库中。 5、关于UCenter的接口,请下载或直接在线访问Discuz!论坛UCenter开发区置顶帖的API文档。 6、UCenter API文档中函数的调用方法: integer uc_user_register(string username , string password , string email [, integer questionid , string answer]) 以此为例,将函数名分解为user和register,我们可以调用UCenter的index.php,post内容为: m : user a : register release : 1.5 inajax : 1(此参数若不存在,将出现一个跳转div,仅限PHP,所以在此处随意赋上一个值即可) appid : 3(此为其他语言应用在UCenter中的id) input : 将所有附加参数的键值对Map经过authcode之后得到的加密字符串 调用完后,此函数将返回注册信息(是否成功、错误原因)的数字。然后我们这里switch一下后采取各种策略。 7、不知是否是bug,或者是特意设计成这样的,Discuz!新注册用户会自动登陆,但却不会进行同步,即不通知其他应用,我建议还是通知一下比较好,呵呵,至少我的应用是这么做的,用户在我这里注册,然后转到Discuz!后,已经进入待激活状态,非常方便。 maxInteger、暂时总结这么多,日后发现还会继续补充,希望大家可以共同完善。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |