成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP調(diào)用微博接口實(shí)現(xiàn)微博登錄

sf_wangchong / 810人閱讀

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

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

1、首先需要引導(dǎo)需要授權(quán)的用戶到如下地址:

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

如果用戶同意授權(quán),頁面跳轉(zhuǎn)至 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中:
應(yīng)用公共文件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 	hinkController 
{
    public function index()
    {
        $key = "****";
        $redirect_uri = "***微博應(yīng)用安全域名***/?backurl=***項目本地域名***/home/login/webLogin?";
        //授權(quán)后將頁面重定向到本地項目
        $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 "

登錄成功

"; } } }

模板代碼login.html:




    
    微博登錄


點(diǎn)擊這里進(jìn)行微博登錄


效果圖:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30906.html

相關(guān)文章

  • 基于Yar的WordPress微博墻插件

    摘要:微博墻就是這樣的一個工具,這不是一款普通的插件,這是一款搭建在基于的插件。這是一款基于的插件,底層語言開發(fā),性能卓越。 在現(xiàn)在移動互聯(lián)網(wǎng)時代,微博已經(jīng)成為了每個人生活中必不可少的一個社交工具。而WordPress是全世界最為流行的博客系統(tǒng),把你的博客接入新浪微博,借助微博的強(qiáng)大用戶群,不僅能給你的網(wǎng)站提供巨大的流量,而且還能帶來不可估量價值。 WordPress微博墻就是這樣的一個工具...

    james 評論0 收藏0
  • 借助詩詞API和微博圖床搭建自動發(fā)圖文微博機(jī)器人

    摘要:微博圖床對于微博圖床的理解得力于這篇文章利用微博當(dāng)圖床語言實(shí)現(xiàn)。源碼如下上傳圖片到微博圖床圖片文件圖片是否采用方式上傳返回的數(shù)據(jù)微博提交正則表達(dá)式提取返回結(jié)果中的數(shù)據(jù)微博機(jī)器人源碼列舉了所要用到的幾個重要,最后還是貼一下機(jī)器人的源碼吧。 ? 在2011年的時候,浙大的一位博士生借助微博的開放平臺為他實(shí)驗(yàn)室的一臺飲水機(jī)弄了個微博,名喚@浙大CCNT實(shí)驗(yàn)室飲水機(jī),俗稱飲水機(jī)娘。當(dāng)年這...

    沈建明 評論0 收藏0
  • 關(guān)于接入微博登錄的代碼實(shí)現(xiàn)

    摘要:關(guān)于接入微博登錄的代碼實(shí)現(xiàn)今天嘗試使用了微博登錄的接口,也是即將使用接入微信登錄,登錄,手機(jī)號登錄用戶名登錄等支持多種操作的問題微博的接口特別簡單明了,文檔也挺清晰的。 關(guān)于接入微博登錄的代碼實(shí)現(xiàn) 今天嘗試使用了微博登錄的接口,也是即將使用接入微信登錄,QQ登錄,手機(jī)號登錄、用戶名登錄等支持多種操作的問題 微博的接口特別簡單明了,文檔也挺清晰的。 采用了OAuth2.0 的方式 請求授...

    wushuiyong 評論0 收藏0
  • Yii2集成第三方微博登錄(包含賬號申請、建表和常用業(yè)務(wù)邏輯全套流程)

    摘要:微博登錄是最常用的第三方賬號登錄之一。當(dāng)前狀態(tài)是未提交審核,待你開發(fā)完了上線后,提交微博審核,審核通過后即可正常使用。集成微博登錄首先簡介一下,第三方登錄開發(fā)的流程。文件是首頁,其實(shí)他的唯一作用就是產(chǎn)生一個微博登錄跳轉(zhuǎn)鏈接。 微博登錄是最常用的第三方賬號登錄之一。由于其網(wǎng)站用戶量大,可操作接口功能多,所以受到很多開發(fā)者的青睞。 既然是第三方,如果想使用它們的賬號進(jìn)行登錄,那么第一步就應(yīng)...

    EdwardUp 評論0 收藏0
  • PHP基于laravel框架獲取微博數(shù)據(jù)之一 模擬新浪微博登錄

    摘要:模擬登錄新浪微博的核心,也是與模擬登錄最大的不同,密碼加密。已經(jīng)實(shí)現(xiàn)模擬新浪微博登錄的功能,之后不再更新。 參考資料: http://www.csuldw.com/2016/11/10/2016-11-10-simulate-sina-login/ http://blog.csdn.net/fly_leopard/article/details/51148904 http://www....

    galois 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<