kingcms的qq登录插件

2012 年 05 月 13 日 22:28

kingcms qq登录插件
—————-

这是为qq群里一朋友写的kingcms qq登录插件,完成的很匆忙,如有错误,请见谅,官方版本也该很快出来,
—————-

使用前,请先备份你的文件,出了问题没备份就后悔莫及….

第一步  配置qq/config.php 文件 ,填写好你的appid,appkey 申请地址:http://opensns.qq.com

        填写好你的数据库 地址 用户名 密码 数据表名等信息

第二步  如果你用官方的css文件,上传html_public里的文件覆盖上传到空间
        
        如果你修该过css ,请参考下面说明
第三步  运行http//域名/qq/sql.php ,显示插入openid字段成功,运行后删除.如不成功,请用phpmyadmin等方式在在数据库表king_user字段中插入openid字段,类型为char(40)
—————-

第二步中,你也可以手动修改信息,如下:

templates/orange/include/head.php

43行  <a href=”qq/callback.php?qq=login”><img src=”qq/63X24.png” border=’0′ alt=’用QQ账号登录’ title=’用QQ账号登录’ /></a>

templates/orange/images/style.css

204行  #top .left{width:500px;text-align:left;line-height:25px;}
219行  #top .right{text-align:right;width:470px;}

library/user.class.php

42行   $user=array(‘userpass’=>’x',’openid’=>’xx’);
45行  if(empty($user))  $user=array(‘userpass’=>’x',’openid’=>’xx’);
49行   if (md5($user['userpass'])==$cookiePass || $ischeck==false || md5($user['openid'])==$cookiePass) {
在数据库表king_user字段中插入openid字段,类型为char(40)
$sql = “ALTER TABLE ‘king_user’ ADD ‘openid’ CHAR(40) NOT NULL AFTER ‘userid’”;
————–
为防止重名,在账号后面添加了一个rand值,可以自行修改

效果预览:

kingcms_qq_login: 点击下载

快抢沙发!

几个接口

2012 年 05 月 09 日 23:27

越来越低级趣味了….. 看到清华小图火爆,学着做个简单qq机器人….

聊天: http://doido.sinaapp.com/chat/?say=你好  参数可选

http://doido.sinaapp.com/chat/api.php?say=吃饭

 

 

天气: http://doido.sinaapp.com/weather/?city=台北县&ip=112.25.36.5  参数二选一,同时存在city优先,均不存在则为访问地址

http://doido.sinaapp.com/weather/api.php?city=台北县&ip=112.25.36.5  参数二选一,同时存在city优先,均不存在则为访问地址

 

 

IP:    http://doido.sinaapp.com/ip/?ip=118.118.95.65  参数可选,不存在则为访问ip

http://doido.sinaapp.com/ip/api.php?ip=118.181.5.6  参数可选,不存在则为访问ip

 

 

飞信: http://doido.sinaapp.com/feixin/?phone=13812345678&pwd=admin888&to=13612341234,13412341234&msg=你好   参数必选

http://doido.sinaapp.com/feixin/?phone=13812345678&pwd=admin888&add=15012341234,15112341234  参数必选,多个用英文逗号隔开

 

 

格言: http://doido.sinaapp.com/motto

http://doido.sinaapp.com/motto/api.php

 

 

节日:已设置常见节日,day为提醒天数,文本默认提醒10天,json默认提醒200天;gl=-6-7设置公历提醒;nl=-5-5设置农历提醒;自定义了提醒就不会显示传统节日

公历: http://doido.sinaapp.com/jieri/?day=100&gl=-6-7&name=高考

农历:  http://doido.sinaapp.com/jieri/?day=10&nl=-5-4&name=端午节前一天

http://doido.sinaapp.com/jieri/api.php?day=30

 

 

 

归属地:  http://doido.sinaapp.com/mobile/?num=15095661234  必选

http://doido.sinaapp.com/mobile/api.php?num=15095681234

 

 

身份证:  http://doido.sinaapp.com/ids/?id=500113198512171234  必选

http://doido.sinaapp.com/ids/api.php?id=12222222   假的返回ret!=0

 

 

彩票:    http://doido.sinaapp.com/caipiao/?type=dlt 大乐透,参数可选,不选则为双色球,下同

http://doido.sinaapp.com/caipiao/api.php?type=dlt

http://doido.sinaapp.com/caipiao/?type=ssq 双色球

http://doido.sinaapp.com/caipiao/api.php?type=ssq

http://doido.sinaapp.com/caipiao/?type=sd 3d

http://doido.sinaapp.com/caipiao/api.php?type=sd

http://doido.sinaapp.com/caipiao/?type=qlc 七乐彩

http://doido.sinaapp.com/caipiao/api.php?type=qlc

 

 

 

网址缩短: http://doido.sinaapp.com/urlshort/?u=http://www.google.com&by=bitly   u参数必选,by可选,by的值可以为:google,bitly,isgd,xco,sina

 

 

快递查询: http://doido.sinaapp.com/kuaidi/?by=yuantong&id=2529665218  参数必选

http://doido.sinaapp.com/kuaidi/api.php?by=yuantong&id=2529665218

ems    邮政EMS     shentong申通快递   shunfeng顺丰速递    tiantian天天快递     yuantong圆通速递   yunda韵达快运     zhongtong中通速递   zhaijisong宅急送    debangwuliu德邦物流    upsUPS物流

 

 

QQ在线状态查询  http://doido.sinaapp.com/qqonline/?qq=1073767689   必选

http://doido.sinaapp.com/qqonline/api.php?qq=1073767689

 

 

 

QQ心情抓取 http://doido.sinaapp.com/shuoshuo/api.php?qq=200708691&num=5         显示5条,默认一条,只能抓取公开的空间

 

 

 

qq基友  http://doido.sinaapp.com/jiyou/?qq=1073767689   无需特殊权限,任意号码均可

http://doido.sinaapp.com/jiyou/api.php?qq=1073767689

 

 

全部采用utf编码, 如果出现错误或显示乱码,请检查文件和文字编码.

图片可以任意调用,不会有外链限制;

GET或POST方式都是OK的;

json调试工具: http://doido.sinaapp.com/json

如果是很长的文本出现错误,请告诉我….

公共返回值:ret=0,没有错误或调用正常; ret!=0,出错,并返回 errmsg=’错误信息’;

还在完善添加中….

快抢沙发!

微博应用:方舟船票

2012 年 05 月 07 日 00:43

2012,传说中的末日,不管真假,反正我是有诺亚方舟船票了…..

围观: http://endworld.sinaapp.com

—————————-

这是学习微博授权机制写的一个基于sae的小应用,用到了大量的GD函数

现在做下简单学习总结

1.首先要创建应用,申请appkey

新浪微博: http://open.weibo.com

腾讯社区: http://opensns.qq.com

腾讯微博: http://open.t.qq.com

2.创建完应用后,接下来我们下载相关的sdk,这里仅以php为例,注释已经写的很明白

新浪sdk:

<?php
session_start();
include_once( 'config.php' );
include_once( 'saetv2.ex.class.php' );
$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
////////////
//OAuth授权之后,获取授权用户的UID
$uid_get = $c->get_uid();
$uid = $uid_get['uid'];

$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息

//////////////////////
//获取用户发布的微博信息列表
//user_timeline_by_id($uid,$page = 1,$count = 50,$since_id = 0,$max_id = 0,$feature = 0,$trim_user = 0,$base_app = 0)
//$page: 页码
///$count: 每次返回的最大记录数,最多返回200条,默认50。
//$uid: 指定用户UID或微博昵称
//$since_id: 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
//$max_id: 若指定此参数,则返回ID小于或等于max_id的提到当前登录用户微博消息。可选。
//$base_app: 是否基于当前应用来获取数据。1为限制本应用微博,0为不做限制。默认为0。
//$feature: 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
//$trim_user: 返回值中user信息开关,0:返回完整的user信息、1:user字段仅返回uid,默认为0。
$ms  = $c->user_timeline_by_id($uid); // done
///////////////////
//获取用户发布的微博信息列表
//user_timeline_by_name ($screen_name,$page = 1,$count = 50,$since_id = 0,$max_id = 0,$feature = 0,$trim_user = 0,$base_app = 0)
//$screen_name: 微博昵称,主要是用来区分用户UID跟微博昵称,当二者一样而产生歧义的时候,建议使用该参数 

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>新浪微博V2接口演示程序-Powered by Sina App Engine</title>
</head>

<body>
	<?=$user_message['screen_name']?>,您好!
	<h2 align="left">发送新微博</h2>
	<form action="" >
		<input type="text" name="text" style="width:300px" />
		<input type="submit" />
	</form>

<?php
///////////////
//发布一条微博信息。
//update ($status,$lat纬度,$long经度,$annotations方便第三方记录数据例如array("a"=>"b", "c"=>"d"))       )
if( isset($_REQUEST['text']) ) {
	$ret = $c->update( $_REQUEST['text'] );	//发送微博
	if ( isset($ret['error_code']) && $ret['error_code'] > 0 ) {
		echo "<p>发送失败,错误:{$ret['error_code']}:{$ret['error']}</p>";
	} else {
		echo "<p>发送成功</p>";
	}
}
/////////////////////////
echo "<br>------发表图片微博----------<br>";
//发表图片微博,图片<5M
//$status: 要更新的微博信息。信息内容不超过140个汉字, 为空返回400错误。
//$pic_path: 要发布的图片路径, 支持url。只支持png/jpg/gif三种格式,
//$lat: 纬度,发表当前微博所在的地理位置,有效范围 -90.0到+90.0, +表示北纬。可选。
//$long: 可选参数,经度。有效范围-180.0到+180.0, +表示东经。可选
$status='发表图片微博测试测试2012年4月23日14:25:43';
$pic_path='http://www.baidu.com/img/baidu_sylogo1.gif';
$ret13 = $c->upload($status,$pic_path,$lat,$long);
	if( isset($ret13['error_code']) && $ret13['error_code'] > 0 ) {
		echo "<p>发表图片微博失败,错误:{$ret7['error_code']}:{$ret7['error']}</p>";
	} else {
		echo "<p>发表图片微博成功</p>";
	}
////////////////////
echo "<br>--------关注用户--------<br>";
//关注用户
//根据uid关注:follow_by_id ($uid)
$ret2  = $c->follow_by_name('tohelong');
	if ( isset($ret2['error_code']) && $ret2['error_code'] > 0 ) {
		echo "<p>关注失败,错误:{$ret2['error_code']}:{$ret2['error']}</p>";
	} else {
		echo "<p>关注成功</p>";
	}
////////////////
//为当前登录用户添加新的用户标签
echo "<br>---------添加标签-------<br>";
$ret6 = $c->add_tags("tag2,tag3,tag4,标签测试");;
	if( isset($ret6['error_code']) && $ret6['error_code'] > 0 ) {
		echo "<p>添加标签失败,错误:{$ret6['error_code']}:{$ret6['error']}</p>";
	} else {
		echo "<p>添加标签成功</p>";
	}
////////////////////////
echo "<br>--------收藏一条微博--------<br>";
//收藏一条微博信息
$sid='3437771555685532';
$ret7 = $c->add_to_favorites ($sid);//$sid  =收藏的微博id
	if( isset($ret7['error_code']) && $ret7['error_code'] > 0 ) {
		echo "<p>收藏失败,错误:{$ret7['error_code']}:{$ret7['error']}</p>";
	} else {
		echo "<p>收藏成功</p>";
	}

///////////////////////
echo "<br>--------互粉列表--------<br>";
//互粉列表
$ret8 = $c-> bilateral ($uid,1,50,0);
//print_r($ret8);
echo $ret8['users'][0]['location'];
//////////////////////
echo "<br>-------表情---------<br>";
$ret9 = $c->emotions ($type = "face",$language = "cnname");
//"face":普通表情,"ani":魔法表情,"cartoon":动漫表情
//print_r($ret9);
echo "<img src=".$ret9[3]['url'].">";
//////////////////////
echo "<br>--------评论微博--------<br>";
//对一条微博进行评论
$id='3437771555685532';//帖子id
$comment='评论测试测试';
$ret10 = $c->send_comment($id,$comment,$comment_ori=0);
//$comment_ori: 当评论转发微博时,是否评论给原微博,0:否、1:是,默认为0
	if( isset($ret10['error_code']) && $ret10['error_code'] > 0 ) {
		echo "<p>评论失败,错误:{$ret7['error_code']}:{$ret7['error']}</p>";
	} else {
		echo "<p>评论成功</p>";
	}
/////////////////////
echo "<br>--------据帖子id获取微博和作者--------<br>";
//根据ID获取单条微博信息内容
$id='3437771555685532';//帖子id
$ret11 = $c->show_status ($id);
//print_r($ret11);
echo $ret11['text'];
echo $ret11['user']['screen_name'];
echo $ret11['user']['location'];
///////////////////
echo "<br>-------用户名id获取资料和微博---------<br>";
//根据用户UID或昵称获取用户资料.也返回最新微博。
//show_user_by_name ($screen_name)
$ret12 = $c->show_user_by_id($uid);
//print_r($ret12);
echo $ret12['screen_name'];
echo "<img src=".$ret12['profile_image_url'].">";
echo $ret12['status']['text'];
////////////////////
echo "<br>----------------<br>";
?>

<?php if( is_array( $ms['statuses'] ) ): ?>
<?php foreach( $ms['statuses'] as $item ): ?>
<div style="padding:10px;margin:5px;border:1px solid #ccc">
		<?=$item['id'];?> <?=$item['text'];?><?=$item['source'];?>
</div>
<?php endforeach; ?>
<?php endif; ?>

</body>
</html>

 

新浪微博配置文件:

腾讯sdk : 麻花藤的东西很蛋疼,请直接下载文件,都有注释

3.一个好的应用最重要的是创意,尽情发挥你的想象
方舟船票是毫无新意的模仿,这里只简单介绍下.
①首先在 congfig.php 或 appkey.php 中填入申请到的appid 和 appkey,然后配置回调地址.
②获取用户信息,根据用户信息,使用php的gd库生成相应图片,生成图片时要注意的地方是:如果用户没有自定义过头像,头像类型是png,否则是jpg.如果是僵尸用户,可能获取不到图像和昵称.
③新浪的应用未上线时,即没通过审核时,只有开发者的账号可以使用应用,其他用户测试只能先在应用管理后台添加测试用户,并且测试用户大于10人才有机会通过审核,这是比较蛋疼的地方,但审核还是很容易通过的
⑤腾讯的应用未上线其他用户也能正常使用,但通过审核比较困难,应用中尽量不要用到非主旋律的词汇
4.方舟船票文件说明
index.php 首页登录按钮放置页
ticket-hall.php 微博回调页,引导用户开始使用
ticket.php 生成内容,为发送到微博做好准备
toweibo.php 将数据提交到微博
suc.php 告知用户成功

sdk下载: http://helong.org/download001/weibosdk.7z

方舟船票源码: http://helong.org/download001/endworld.7z

有什么需要改进的地方,欢迎童鞋拍砖交流

快抢沙发!