最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP調(diào)用微博接口實現(xiàn)微博登錄的方法示例

 更新時間:2018年09月22日 11:26:11   作者:JONGTY  
這篇文章主要介紹了PHP調(diào)用微博接口實現(xiàn)微博登錄的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在平時項目開發(fā)過程中,除了注冊本網(wǎng)站賬號進行登錄之外,還可以調(diào)用第三方接口進行登錄網(wǎng)站。這里以微博登錄為例。微博登錄包括身份認證、用戶關系以及內(nèi)容傳播。允許用戶使用微博帳號登錄訪問第三方網(wǎng)站,分享內(nèi)容,同步信息。

1、首先需要引導需要授權的用戶到如下地址:

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

如果用戶同意授權,頁面跳轉至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE:

2、接下來要根據(jù)上面得到的code來換取Access Token:

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

返回值:

JSON

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

3、最后,使用獲得的OAuth2.0 Access Token調(diào)用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=code&redirect_uri={$redirect_uri}";
    $this -> assign('wb_url',$wb_url);
    return view('login');
  }


  public function webLogin(){
    $key = "*****";
    //接收code值
    $code = input('get.code');
    //換取Access Token: post方式請求  替換參數(shù): 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_code&redirect_uri={$redirect_uri}&code={$code}";
    $token = post($url, array());
    $token = json_decode($token, true);
    //獲取用戶信息 : get方法,替換參數(shù): 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>

效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Laravel等框架模型關聯(lián)的可用性淺析

    Laravel等框架模型關聯(lián)的可用性淺析

    這篇文章主要給大家介紹了關于Laravel等框架模型關聯(lián)的可用性的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Laravel等框架具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • Thinkphp極驗滑動驗證碼實現(xiàn)步驟解析

    Thinkphp極驗滑動驗證碼實現(xiàn)步驟解析

    這篇文章主要介紹了Thinkphp極驗滑動驗證碼實現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • bindParam和bindValue的區(qū)別以及在Yii2中的使用詳解

    bindParam和bindValue的區(qū)別以及在Yii2中的使用詳解

    下面小編就為大家分享一篇bindParam和bindValue的區(qū)別以及在Yii2中的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 摘自織夢CMS中的圖片處理類

    摘自織夢CMS中的圖片處理類

    這篇文章主要介紹了摘自織夢CMS中的圖片處理類,通過面向?qū)ο蟮姆绞捷^為詳細的實現(xiàn)了php針對圖片的縮略圖生成及水印添加等操作技巧,非常具有實用價值,需要的朋友可以參考下
    2015-08-08
  • PHP會員找回密碼功能的簡單實現(xiàn)

    PHP會員找回密碼功能的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄狿HP會員找回密碼功能的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • php下載文件的代碼示例

    php下載文件的代碼示例

    php下載文件的代碼示例,需要的朋友可以參考下
    2012-06-06
  • php實現(xiàn)微信原生支付(掃碼支付)功能

    php實現(xiàn)微信原生支付(掃碼支付)功能

    這篇文章主要為大家詳細介紹了php實現(xiàn)微信原生支付,掃碼支付功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • PHP反射機制案例講解

    PHP反射機制案例講解

    這篇文章主要介紹了PHP反射機制案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • PHP上傳Excel文件導入數(shù)據(jù)到MySQL數(shù)據(jù)庫示例

    PHP上傳Excel文件導入數(shù)據(jù)到MySQL數(shù)據(jù)庫示例

    這篇文章主要介紹了PHP上傳Excel文件導入數(shù)據(jù)到MySQL數(shù)據(jù)庫示例,可以將Excel的數(shù)據(jù)寫入到MySQL數(shù)據(jù)庫中,感興趣的同學可以了解一下。
    2016-10-10
  • php實現(xiàn)的支付寶網(wǎng)頁支付功能示例【基于TP5框架】

    php實現(xiàn)的支付寶網(wǎng)頁支付功能示例【基于TP5框架】

    這篇文章主要介紹了php實現(xiàn)的支付寶網(wǎng)頁支付功能,結合實例形式分析了基于TP5框架框架的支付寶網(wǎng)頁支付功能具體操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-09-09

最新評論

文安县| 大邑县| 叶城县| 大竹县| 贡嘎县| 古蔺县| 湘阴县| 蕉岭县| 潢川县| 九龙坡区| 潞西市| 巴塘县| 绥德县| 长乐市| 焉耆| 门源| 资中县| 平湖市| 潼关县| 桑植县| 故城县| 兴国县| 北安市| 苍南县| 电白县| 云浮市| 汾西县| 安阳县| 太仆寺旗| 余江县| 崇仁县| 方山县| 扬州市| 宁蒗| 天台县| 阿拉善左旗| 镇赉县| 白玉县| 福泉市| 平和县| 泰顺县|