• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP调用微博接口实现微博登录的方法示例

    在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站。这里以微博登录为例。微博登录包括身份认证、用户关系以及内容传播。允许用户使用微博帐号登录访问第三方网站,分享内容,同步信息。

    1、首先需要引导需要授权的用户到如下地址:

    https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_IDresponse_type=coderedirect_uri=YOUR_REGISTERED_REDIRECT_URI

    如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE:

    2、接下来要根据上面得到的code来换取Access Token:

    https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_IDclient_secret=YOUR_CLIENT_SECRETgrant_type=authorization_coderedirect_uri=YOUR_REGISTERED_REDIRECT_URIcode=CODE

    返回值:

    JSON

    {
     "access_token": "SlAV32hkKG",
     "remind_in": 3600,
     "expires_in": 3600 
    }

    3、最后,使用获得的OAuth2.0 Access Token调用API,获取用户身份,完成用户的登录。

    话不多说,直接上代码:

    为了方便,我们先将get和post封装到application下的common.php中:
    应用公共文件common.php:

    function get( $url, $_header = NULL )
    {
      $curl = curl_init();
      //curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false); 
      if( stripos($url, 'https://') !==FALSE )
      {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
      }
    
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_HEADER, 0);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
      if ( $_header != NULL )
      {
        curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
      }
      $ret  = curl_exec($curl);
      $info  = curl_getinfo($curl);
      curl_close($curl);
    
      if( intval( $info["http_code"] ) == 200 )
      {
        return $ret;
      }
    
      return false;
    }
    /*
     * post method
     */
    function post( $url, $param )
    {
       $oCurl = curl_init ();
      curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
      if (stripos ( $url, "https://" ) !== FALSE) {
        curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
        curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
      }
      
      curl_setopt ( $oCurl, CURLOPT_URL, $url );
      curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
      curl_setopt ( $oCurl, CURLOPT_POST, true );
      curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
      $sContent = curl_exec ( $oCurl );
      $aStatus = curl_getinfo ( $oCurl );
      curl_close ( $oCurl );
      if (intval ( $aStatus ["http_code"] ) == 200) {
        return $sContent;
      } else {
        return false;
      }
    }

    控制器处理代码Login.php:

    class Login extends \think\Controller 
    {
      public function index()
      {
        $key = "****";
        $redirect_uri = "***微博应用安全域名***/?backurl=***项目本地域名***/home/login/webLogin?";
        //授权后将页面重定向到本地项目
        $redirect_uri = urlencode($redirect_uri);
        $wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}response_type=coderedirect_uri={$redirect_uri}";
        $this -> assign('wb_url',$wb_url);
        return view('login');
      }
    
    
      public function webLogin(){
        $key = "*****";
        //接收code值
        $code = input('get.code');
        //换取Access Token: post方式请求  替换参数: client_id, client_secret,redirect_uri, code
        $secret = "********";
        $redirect_uri = "********";
        $url = "https://api.weibo.com/oauth2/access_token?client_id={$key}client_secret={$secret}grant_type=authorization_coderedirect_uri={$redirect_uri}code={$code}";
        $token = post($url, array());
        $token = json_decode($token, true);
        //获取用户信息 : get方法,替换参数: access_token, uid
        $url = "https://api.weibo.com/2/users/show.json?access_token={$token['access_token']}uid={$token['uid']}";
        $info = get($url);
        if($info){
          echo "p>登录成功/p>";
        }
      }
    }

    模板代码login.html:

    !DOCTYPE html>
    html lang="en">
    head>
      meta charset="UTF-8">
      title>微博登录/title>
    /head>
    body>
    a href="{$wb_url}" rel="external nofollow" >点击这里进行微博登录/a>
    /body>
    /html>

    效果图:

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • PHP实现发送微博消息功能完整示例
    • redis+php实现微博(三)微博列表功能详解
    • redis+php实现微博(二)发布与关注功能详解
    • redis+php实现微博(一)注册与登录功能详解
    • PHP+redis实现微博的拉模型案例详解
    • PHP+redis实现微博的推模型案例分析
    • vue+php实现的微博留言功能示例
    • php微信分享到朋友圈、QQ、朋友、微博
    • php新浪微博登录接口用法实例
    • 基于PHP实现发微博动态代码实例
    上一篇:PHP如何搭建百度Ueditor富文本编辑器
    下一篇:php中上传文件的的解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP调用微博接口实现微博登录的方法示例 PHP,调用,微博,接口,实现,