UCenter和各个子站的通讯,主要就是通过 POST 的方式调用而已,没有什么技术含量。
表单参数都是经过 Base64 算法,加一个通信密钥进行加密和解密的。
返回的数据是单个参数(例如:0或者1),也可能是xml序列化后的数据。
例如一个请求:code=e145fscn314BSKnwxBvqLaQe2yrHJAnKO1M%2B8C4cAKQAtRRQfEqTh8mg665UVJPyrJIrPhDNnEM
解密后:action=test&time=1295631663
返回:1 站长教学网 eduyo.com
以上是一个测试是否通讯成功的请求,上面是表单参数,解密的明文如上,返回1代表通讯成功!
而其中的难点就在于,Discuz 并没有公开所有的 API!而仅仅是提供了一个 php 版的函数库,帮你写好了这些通讯函数。
所以 php 的网站做起来很轻松,而别的网站就痛苦了。
这里的痛苦包括加密和解密函数、序列化和反序列化、还有期中各个参数的名称和格式…
怎么解决?只能翻阅 php 版本的源代码,把它的 API 一条条看过去,然后用自己需要用的语言重写一遍。
(责任编辑:ken)