UCenter开发基础手册API接口.docx

上传人:b****4 文档编号:5196917 上传时间:2022-12-13 格式:DOCX 页数:10 大小:18.40KB
下载 相关 举报
UCenter开发基础手册API接口.docx_第1页
第1页 / 共10页
UCenter开发基础手册API接口.docx_第2页
第2页 / 共10页
UCenter开发基础手册API接口.docx_第3页
第3页 / 共10页
UCenter开发基础手册API接口.docx_第4页
第4页 / 共10页
UCenter开发基础手册API接口.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

UCenter开发基础手册API接口.docx

《UCenter开发基础手册API接口.docx》由会员分享,可在线阅读,更多相关《UCenter开发基础手册API接口.docx(10页珍藏版)》请在冰豆网上搜索。

UCenter开发基础手册API接口.docx

UCenter开发基础手册API接口

UCenter开发手册API接口(-09-0611:

50:

33)

Discuz!

文档UCenter开发手册

API接口

如下关于文献阐述以及代码样例,均以PHP程序为例。

UCenterAPI接口文献必要存储于应用程序根目录“api/”目录中,且文献名可以自定义,默以为uc.php,即“api/uc.php”。

文献构造可分为4某些,包括12个接口项目。

第1某些为常量定义、第2某些为告知方式判断以及初始化输入参数、第3某些为接口类代码段、第4某些为函数定义。

1、常量定义

define('UC_CLIENT_VERSION','1.5.0');//noteUCenter版本标记

define('UC_CLIENT_RELEASE','1031');

define('API_DELETEUSER',1);//note顾客删除API接口开关

define('API_RENAMEUSER',1);//note顾客改名API接口开关

define('API_GETTAG',1);//note获取标签API接口开关

define('API_SYNLOGIN',1);//note同步登录API接口开关

define('API_SYNLOGOUT',1);//note同步登出API接口开关

define('API_UPDATEPW',1);//note更改顾客密码开关

define('API_UPDATEBADWORDS',1);//note更新核心字列表开关

define('API_UPDATEHOSTS',1);//note更新域名解析缓存开关

define('API_UPDATEAPPS',1);//note更新应用列表开关

define('API_UPDATECLIENT',1);//note更新客户端缓存开关

define('API_UPDATECREDIT',1);//note更新顾客积分开关

define('API_GETCREDITSETTINGS',1);//note向UCenter提供积分设立开关

define('API_GETCREDIT',1);//note获取顾客某项积分开关

define('API_UPDATECREDITSETTINGS',1);//note更新应用积分设立开关

define('API_RETURN_SUCCEED','1');

define('API_RETURN_FAILED','-1');

define('API_RETURN_FORBIDDEN','-2');

常量定义某些定义了接口所用到14个接口项目开关设立,“1”为启动“0”为关闭。

如果启动,则代码段运营后返回API_RETURN_SUCCEED,否则返回API_RETURN_FORBIDDEN。

接口运营失败则返回API_RETURN_FAILED。

2、告知方式判断以及初始化输入参数

if(!

defined('IN_UC')){

error_reporting(0);

set_magic_quotes_runtime(0);

define('DISCUZ_ROOT',substr(dirname(__FILE__),0,-3));

defined('MAGIC_QUOTES_GPC')||define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc());

require_onceDISCUZ_ROOT.'./config.inc.php';

$_DCACHE=$get=$post=array();

$code=@$_GET['code'];

parse_str(_authcode($code,'DECODE',UC_KEY),$get);

if(MAGIC_QUOTES_GPC){

$get=_stripslashes($get);

}

$timestamp=time();

if($timestamp-$get['time']>3600){

exit('Authracationhasexpiried');

}if(empty($get)){

exit('InvalidRequest');

}

$action=$get['action'];

require_onceDISCUZ_ROOT.'./uc_client/lib/xml.class.php';

$post=xml_unserialize(file_get_contents('php:

//input'));

if(in_array($get['action'],array('test','deleteuser','renameuser','gettag','synlogin','synlogout','updatepw','updatebadwords','updatehosts','updateapps','updateclient','updatecredit','getcreditsettings','updatecreditsettings'))){

require_onceDISCUZ_ROOT.'./include/db_'.$database.'.class.php';

$GLOBALS['db']=newdbstuff;

$GLOBALS['db']->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect,true,$dbcharset);

$GLOBALS['tablepre']=$tablepre;

unset($dbhost,$dbuser,$dbpw,$dbname,$pconnect);

$uc_note=newuc_note();

exit($uc_note->$get['action']($get,$post));

}else{

exit(API_RETURN_FAILED);

}

}else{

define('DISCUZ_ROOT',$app['extra']['apppath']);

require_onceDISCUZ_ROOT.'./config.inc.php';

require_onceDISCUZ_ROOT.'./include/db_'.$database.'.class.php';

$GLOBALS['db']=newdbstuff;

$GLOBALS['db']->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect,true,$dbcharset);

$GLOBALS['tablepre']=$tablepre;

unset($dbhost,$dbuser,$dbpw,$dbname,$pconnect);

}

通过常量IN_UC来判断接口文献是通过远程HTTP方式访问还是直接包括方式调用

2、接口代码段

接口类名称为uc_note,接口名称作为此类一种办法,uc_note代码构造大体如下:

classuc_note{

var$dbconfig='';

//var$db='';

var$appdir='';

function_serialize($arr,$htmlon=0){

if(!

function_exists('xml_serialize')){

include_onceDISCUZ_ROOT.'./uc_client/lib/xml.class.php';

}

returnxml_serialize($arr,$htmlon);

}

functionuc_note(){

$this->appdir=substr(dirname(__FILE__),0,-3);

$this->dbconfig=$this->appdir.'./config.inc.php';

}

functiontest($get,$post){

returnAPI_RETURN_SUCCEED;

}

functiondeleteuser($get,$post){

returnAPI_RETURN_SUCCEED;

}

}

详细可以参照Discuz7.0.0代码中/api/uc.php

test

此接口供仅测试连接。

当UCenter发起test接口祈求时,如果成功获取到接口返回API_RETURN_SUCCEED值,表达UCenter和应用通讯正常。

deleteuser

当UCenter删除一种顾客时,会发起deleteuser接口祈求,告知所有应用程序删除相应顾客。

输入参数放在$get['ids']中,值为用逗号分隔顾客ID。

如果删除成功则输出API_RETURN_SUCCEED。

deleteuser接口示例(PHP)

renameuser

当UCenter更改一种顾客顾客名时,会发起renameuser接口祈求,告知所有应用程序改名。

输入参数$get['uid']表达顾客ID,$get['oldusername']表达旧顾客名,$get['newusername']表达新顾客名。

如果修改成功则输出API_RETURN_SUCCEED。

renameuser接口示例(PHP)

updatepw

当顾客更改顾客密码时,此接口负责接受UCenter发来新密码。

输入参数$get['username']表达顾客名,$get['password']表达新密码。

如果修改成功则输出API_RETURN_SUCCEED。

updatepw接口示例(PHP)

gettag

如果应用程序存在标签功能,可以通过此接口把应用程序标签数据传递给UCenter。

输入参数放在$get['id']中,值为标签名称。

输出数组需通过uc_serialize解决。

integer[0]标签名称

array[1]标签数据mixed['xxx']自定义

自定义各种数组项,索引名任意,一同返回给UCenter。

为了保证应用间数据共享,您需要在“应用管理管理”“标签单条显示模板”和“标签模板标记阐明”设立模板和阐明。

模板中“{xxx}”表达标签数据索引,代表相应数据。

如扩展数据模板中“{image}”将显示“['image']”数组项内容。

gettag接口示例(PHP)

synlogin

如果应用程序需要和其她应用程序进行同步登录,此某些代码负责标记指定顾客登录状态。

输入参数放在$get['uid']中,值为顾客ID。

此接口为告知接口,无输出内容。

同步登录需使用P3P原则。

synlogin接口示例(PHP)

synlogout

如果应用程序需要和其她应用程序进行同步退出登录,此某些代码负责撤销顾客登录状态。

此接口为告知接口,无输入参数和输出内容。

同步退出需使用P3P原则。

synlogout接口示例(PHP)

updatebadwords

当UCenter词语过滤设立变更时,此接口负责告知所有应用程序更新后词语过滤设立内容。

设立内容用POST方式提交到接口。

接口运营完毕输出API_RETURN_SUCCEED。

updatebadwords接口示例(PHP)

updatehosts

当UCenter域名解析设立变更时,此接口负责告知所有应用程序更新后域名解析设立内容。

设立内容用POST方式提交到接口。

接口运营完毕输出API_RETURN_SUCCEED。

updatehosts接口示例(PHP)

updateapps

当UCenter应用程序列表变更时,此接口负责告知所有应用程序更新后应用程序列表。

设立内容用POST方式提交到接口。

接口运营完毕输出API_RETURN_SUCCEED。

updateapps接口示例(PHP)

updateclient

当UCenter基本设立信息变更时,此接口负责告知所有应用程序更新后基本设立内容。

设立内容用POST方式提交到接口。

接口运营完毕输出API_RETURN_SUCCEED。

updateclient接口示例(PHP)

updatecredit

当某应用执行了积分兑换祈求接口函数uc_credit_exchange_request()后,此接口负责告知被兑换目应用程序所需修改顾客积分值。

输入参数$get['credit']表达积分编号,$get['amount']表达积分增减值,$get['uid']表达顾客ID。

updatecredit接口示例(PHP)

getcreditsettings

此接口负责把应用程序积分设立传递给UCenter,以供UCenter在积分兑换设立中使用。

此接口无输入参数。

输出数组需通过uc_serialize解决。

输出数组单条构造:

1维KEY2维KEY

array[n]积分编号string[0]积分名称

string[1]积分单位

如:

array(

'1'=>array('威望',''),

'2'=>array('金钱','枚'),

getcreditsettings接口示例(PHP)

updatecreditsettings

此接口负责接受UCenter积分兑换设立参数。

输入参数放在$get['credit']中,值为设立参数数组。

接口运营完毕输出API_RETURN_SUCCEED。

输入数组单条构造:

1维KEY2维KEY

array[appid]应用程序IDinteger['appiddesc']积分兑换目的应用程序ID

integer['creditdesc']积分兑换目的积分编号

integer['creditsrc']积分兑换源积分编号

string['title']积分名称

string['unit']积分单位

integer['ratio']积分兑换比率

如:

array(

'1'=>array(

'appiddesc'=>2,

'creditdesc'=>1,

'creditsrc'=>1,

'title'=>'金钱',

'unit'=>'枚',

'ratio'=>2,

),

updatecreditsettings接口示例(PHP)

getcredit

此接口用于把应用程序中指定顾客积分传递给UCenter。

输入参数$get['uid']为顾客ID,$get['credit']为积分编号。

接口运营完毕输出积分值。

getcredit接口示例(PHP)

4、函数定义

接口函数中必要包括如下函数,否则无法对的对UCenter传递过来数据进行解码。

functionauthcode($string,$operation='DECODE',$key='',$expiry=0){

$ckey_length=4;

$key=md5($key?

$key:

UC_KEY);

$keya=md5(substr($key,0,16));

$keyb=md5(substr($key,16,16));

$keyc=$ckey_length?

($operation=='DECODE'?

substr($string,0,$ckey_length):

substr(md5(microtime()),-$ckey_length)):

'';

$cryptkey=$keya.md5($keya.$keyc);

$key_length=strlen($cryptkey);

$string=$operation=='DECODE'?

base64_decode(substr($string,$ckey_length)):

sprintf('0d',$expiry?

$expiry+time():

0).substr(md5($string.$keyb),0,16).$string;

$string_length=strlen($string);

$result='';

$box=range(0,255);

$rndkey=array();

for($i=0;$i<=255;$i++){

$rndkey[$i]=ord($cryptkey[$i%$key_length]);

}

for($j=$i=0;$i<256;$i++){

$j=($j+$box[$i]+$rndkey[$i])%256;

$tmp=$box[$i];

$box[$i]=$box[$j];

$box[$j]=$tmp;

}

for($a=$j=$i=0;$i<$string_length;$i++){

$a=($a+1)%256;

$j=($j+$box[$a])%256;

$tmp=$box[$a];

$box[$a]=$box[$j];

$box[$j]=$tmp;

$result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));

}

if($operation=='DECODE'){

if((substr($result,0,10)==0||substr($result,0,10)-time()>0)&&substr($result,10,16)==substr(md5(substr($result,26).$keyb),0,16)){

returnsubstr($result,26);

}else{

return'';

}

}else{

return$keyc.str_replace('=','',base64_encode($result));

}

}

functionuc_serialize($arr,$htmlon=0){

include_onceUC_CLIENT_ROOT.'./lib/xml.class.php';

returnxml_serialize($arr,$htmlon);

}

functionuc_unserialize($s){

include_onceUC_CLIENT_ROOT.'./lib/xml.class.php';

returnxml_unserialize($s);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1