腾讯微博登陆API接口-实例代码
申请 API接口请进入 http://dev.t.qq.com/ 下载
请把控制器放在xxx.php/Index/index.html
或者隐藏Xxx.php 否则腾讯不支持 回调地址 xxx.php?id=xxx 或 xxx.php/Index/index.html
登陆成功回调地址 xxx.php?xxx=xxx 接收参数
下面是个人实例代码,喜欢自动收听转发微博的请收藏
案例地址 http://blog.flash127.com/
class LoginAction extends Action {
public function index(){
import('ORG.Util.Tencent'); //截入腾讯微博类
$client_id = '80xxxxx225'; //app_id
$client_secret = 'e65XXXXXXXXXXXX75c8b6'; //app_key
$debug = false; //调试模式
OAuth::init($client_id, $client_secret);
Tencent::$debug = $debug;
if ($_SESSION['t_access_token'] || ($_SESSION['t_openid'] && $_SESSION['t_openkey'])) {//用户已授权
//获取用户信息
$r = Tencent::api('user/info');
$aaa = json_decode($r, true);
//print_r($aaa);
$nick = $aaa['data']['nick'];
$name = $aaa['data']['name'];
$head = $aaa['data']['head'];
//收听用户
$add_t_name = array(
"format" => "xml",
'name' => 'xz52099888',
'fopenids' => 'add'
);
Tencent::api('friends/add',$add_t_name,"post");
//收听用户
$add_t_name127 = array(
"format" => "xml",
'name' => 'flash127',
'fopenids' => 'add'
);
Tencent::api('friends/add',$add_t_name127,"post");
//发表图片微博
$add_txt = array(
'format' => "json",
'content' => '我刚在魔法日志网制作了一个魔法日志,这家网站太强大了,全站都免费用,上百款都可以做,可以说是全网最多最牛B的,给你们地址: http://blog.flash127.com/',
'pic_url' => 'http://mf.52qzone.net/templets/mm/img/logo.png',
'syncflag'=> 0
);
Tencent::api('t/add_pic_url', $add_txt, 'POST');
$db=M('User');
$where['t']=$name;
$F=$db->where($where)->find(); //如果本地有此用户,直接登陆成功,否则写入数据库
if($F){
$_SESSION['id'] = $F['id'];
$_SESSION['t'] = $F['t'];
$_SESSION['head'] = $F['head'];
$data['login_time'] = time();
$data['login_ip'] = $ip;
$data['nick'] = $nick;
$data['head'] = $head;
$data['a'] = $F['a']+1;
$db->where($where)->save($data);
$this->success("登陆成功","/vip/");
}else{
$ip = get_client_ip();
$data['t'] = $name;
$data['nick'] = $nick;
$data['head'] = $head;
$data['reg_time'] = time();
$data['reg_ip'] = $ip;
$data['login_time'] = time();
$data['login_ip'] = $ip;
$is=$db->add($data);
if($is){
$_SESSION['id'] = $is;
$_SESSION['t'] = $name;
$_SESSION['head'] = $head;
$this->success("注册成功","/vip/");
}else{
$this->error("注册失败");
}
}
}else{
$callback = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];//回调url
if ($_GET['code']) {//已获得code
$code = $_GET['code'];
$openid = $_GET['openid'];
$openkey = $_GET['openkey'];
//获取授权token
$url = OAuth::getAccessToken($code, $callback);
$r = Http::request($url);
parse_str($r, $out);
//存储授权数据
if ($out['access_token']) {
$_SESSION['t_access_token'] = $out['access_token'];
$_SESSION['t_refresh_token'] = $out['refresh_token'];
$_SESSION['t_expire_in'] = $out['expires_in'];
$_SESSION['t_code'] = $code;
$_SESSION['t_openid'] = $openid;
$_SESSION['t_openkey'] = $openkey;
//验证授权
$r = OAuth::checkOAuthValid();
if ($r) {
header('Location: ' . $callback);//刷新页面
} else {
exit('<h3>授权失败,请重试</h3>');
}
} else {
exit($r);
}
} else {//获取授权code
if ($_GET['openid'] && $_GET['openkey']){//应用频道
$_SESSION['t_openid'] = $_GET['openid'];
$_SESSION['t_openkey'] = $_GET['openkey'];
//验证授权
$r = OAuth::checkOAuthValid();
if ($r) {
header('Location: ' . $callback);//刷新页面
} else {
exit('<h3>授权失败,请重试</h3>');
}
} else{
$url = OAuth::getAuthorizeURL($callback);
header('Location: ' . $url);
}
}
}
}
}
热文精选
更多资讯推荐
更多- Stable Diffusion 2.0 发布,加强成人内容过滤
- .NET 7 正式发布
- A3Mall 开源商城系统 v2.1 发布
- FydeOS v14 版本更新:优化输入法体验+重构安卓子系统+全新应用启动器
- ThinkPHP V6.0.8版本发布——多环境变量配置支持
- 毕昇 JDK 8u292、11.0.11 发布!
- KubeVela 1.0:开启可编程式应用平台的未来
- Eclipse 4.19 稳定版发布
- 阿里巴巴 Arthas 3.5.0 版本发布,支持反编译打印行号和统一鉴权
- Debian 11 Bullseye 即将进入冻结,Debian 13 代号 Trixie
- Rancher 2.5 发布,新增支持边缘集群的 GitOps
- FlashDB IoT 超轻量级嵌入式数据库