UCenter与Java语言的整合经验

1、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、暂时总结这么多,日后发现还会继续补充,希望大家可以共同完善。

时间: 2024-08-03 22:33:42

UCenter与Java语言的整合经验的相关文章

java程序如何整合UCenter

问题描述 java程序如何整合UCenter?给事思路也行.康盛有ucenter的java接口吗?如果自已写接口,大致的原理是什么?

Java语言学习的要点

    Java的学习是比较复杂的,主要表现在相关的一系列平台.规范和协议上.有经验的Java程序员都知道,只掌握了Java语言本身很难开发应用程序.本文不讨论这些复杂的概念,而是从初学者的角度,对于Java语言本身的学习提出自己的见解和建议.本文的讨论基于以下假设:? 学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究? 将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台掌握静态方法和属性静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征.java中大量应用

学习java语言思想 了解java语言优势

虽然Java技术是那么的诱人,前景也似乎非常光明,但是不是已经有了C.C++等广泛应用并且大获成功的语言了吗?微软不是又在大力推广他们的.Net技术吗?LISP.Prolog等人工智能语言在北美洲.欧洲的金融领域不是也有很大的应用吗?学习Java编程,是不是一个明智的选择呢? 带着这些问题,让我们来看看Java的优势. 1.免费! Sun免费提供用来开发Java应用程序的一切,你不必付任何的版税.或许你会将信将疑:资本家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应

帮你学习Java语言的游戏

有人说,最好的学习方法就是游戏.来自旧金山加州大学的研发团队日前开发了一款编程游戏--在游戏的同时教会玩家如何使用 Java 语言.这款名为 CodeSpells 的游戏是由计算机学家 William Griswold 带领的大四学生团队开发的.游戏的主要受众为高中生.研发团队希望由此来开发学生们的创新力和想象力,让他们主动地去学习知识.   该作是一款第一人称游戏.玩家将扮演一名和矮人们生活在荒岛上的魔法师.因为矮人们失去了使用魔法的能力,所以作为魔法师的玩家将帮助矮人们完成魔法.这些咒语是以

JAVA语言学校的危险性

下面的文章是More Joel on Software一书的第8篇.                                我觉得翻译难度很大,整整两个工作日,每天8小时以上,才译出了5000字.除了Joel大量使用俚语,另一个原因是原文涉及"编程原理",好多东西我根本不懂.希望懂的朋友帮我看看,译文有没有错误,包括我写的注解. ==================== JAVA语言学校的危险性 作者:Joel Spolsky 译者:阮一峰 原文: http://www.joe

《Java语言导学(原书第6版)》一导读

前 言 自2010年年初Oracle公司收购Sun公司以来,Java语言迎来激动人心的时代.正如Java Community Process计划的活动所印证的,Java语言将不断发展.本书基于Java SE 8(Java Platform Standard Edition 8)并引用其API. 相比本书第5版(针对的是Java版本7),第6版有一些新特点: Lambda表达式使得功能可作为方法参数使用,代码作为数据使用.Lambda表达式描述单个方法接口(也称为功能接口)的实例会更简洁.4.4.

IntelliJ IDEA 10发布 java语言开发集成环境

IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合.代码审查. 创新的GUI设计等方面的功能可以说是超常的. IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主. IDEA的优越: 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQue

java语法-分析一下void关键词的意义,java语言之中

问题描述 分析一下void关键词的意义,java语言之中 分析一下void关键词的意义,java语言之中 话说return语句返回的一个对象有什么用呢? 是作为某个方法的参数吗还是如何 解决方案 那个--这个问题我不知道该怎么回答-- 无论什么语言,都有函数的概念,而函数的通用作用是: 传入一个值,返回一个值. 假如你不要这个返回值,那你调用这个函数干嘛?return语句返回一个对象,当然是要用这个对象了-- 至于为什么要有void关键字-- 好吧我输了,其实没有这个关键字也没关系,无非就是每个

Java基础知识之Java语言概述_java

Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初主要应用在小型消费电子产品上,后来随着互联网的兴起,Java语言迅速崛起(Java applet 可以在浏览器中运行),成为大型互联网项目的首选语言. 2009年04月20日,美国甲骨文公司74亿美元收购Sun,取得java的版权. Java 是面向对象的语言,没有面向对象编程经验的读者需要花费不少时间来了解面向对象的概念.语法和编程思想,有不能理解的地方请