Ecshop集成新浪微博登录插件教程分享

作者:wenchao2353 hihi 来源:用户投稿 浏览: 2012-9-10 16:31:54 字号:
[摘要]本文分享Ecshop集成新浪微博登录插件的教程,只需修改config.php、callback.php两个文件,然后将config.php、callback.php、index.php、saetv2.ex.class.php四个文件放login文件夹上传空间就行了,详见下文。

  近网站想添加新浪微博登录功能,于是在网上搜索了下,下载了一个插件的放我网站里面没效果,所以觉定自己动手试试,本人php新手说得不到之处还望大侠高手们多多指教。

  1.先去http://open.weibo.com/ 这里申请app

  2.下载最新http://code.google.com/p/libweibo/downloads/list插件包

   2.1其中需要修改config.php文件

 define( "WB_AKEY" , '申请的到的key );
define( "WB_SKEY" , '相对应的App Secret' );
define( "WB_CALLBACK_URL" , 'http://域名/login/callback.php' );

   2.2 修改文件callback.php ,将此处代码复制全部替换

<?php
session_start();
define('IN_ECS', true);
require('../includes/init.php');
include_once('../includes/lib_transaction.php');
include_once('../includes/lib_passport.php');

include_once( 'config.php' );
include_once( 'saetv2.ex.class.php' );

$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );

if (isset($_REQUEST['code'])) {
$keys = array();
$keys['code'] = $_REQUEST['code'];
$keys['redirect_uri'] = WB_CALLBACK_URL;
try {
$token = $o->getAccessToken( 'code', $keys ) ;
} catch (OAuthException $e) {
}
}


if ($token) {
$_SESSION['token'] = $token;
setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );

$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
$ms = $c->home_timeline(); // done
$uid_get = $c->get_uid();
$uid = $uid_get['uid'];
$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息



function check_user($username){
$sql = "SELECT user_id, password, salt " .
" FROM " . $GLOBALS['ecs']->table("users").
" WHERE user_name='$username'";
$row = $GLOBALS['db']->getRow($sql);
if (!empty($row)){
return true;
}else{
return false;
}
}
if($user_message['screen_name']!==""){ //获取微薄昵称
$username=$user_message['screen_name'];
$password=time();//随便弄个密码 反正没有用
$email='123456@163.com';//随便默认个邮箱
$back_act ="/user.php";
if (check_user($username)!==false){
$GLOBALS['user']->set_session($username);
$GLOBALS['user']->set_cookie($username);
header("Location: /user.php\n"); //验证成功,跳转页面
exit;
}else{
$reg_date = time();
$password =md5($password);
$ip=real_ip();
$GLOBALS['db']->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$email', '$username', '$password', '$reg_date', '$reg_date', '$ip')");
$GLOBALS['user']->set_session($username);
$GLOBALS['user']->set_cookie($username);
header("Location: /user.php\n");
exit;
}
}else{
echo 'fail';
exit;
}
?>

<?php
} else {
?>
授权失败。
<?php
}
?>

  修改的就这两文件,其中weibolist.php可以删除。

  3.然后将config.php、callback.php、index.php、saetv2.ex.class.php四个文件放login文件夹上传空间就行了。

  到这基本就完成了功能了,希望对有需要的站长有所帮助。

  本文作者分享演示站:http://www.diy520.cn

sssss
Tags: Ecshop集成新浪微博登录   新浪微博登录插件   集成微博登录插件   Ecshop  
责任编辑:azha
编辑推荐排行