ホームページ  >  記事  >  バックエンド開発  >  php QQ サードパーティ ログイン SDK プログラム コード_PHP チュートリアル

php QQ サードパーティ ログイン SDK プログラム コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:12:241389ブラウズ

php QQ のサードパーティ ログイン SDK プログラム コードを書き直しました。公式のものでは褒められなかったので、別のものを書きました


主な理由は、QQ の PHP SDK は非常に貧弱に書かれていると考えたためであり、純粋に API の知識を普及するためでした。 . 手元にデプロイできるクラス ライブラリではありません。 。とにかく、私自身が書いたので、それを共有します。 。

これ以上何も言う必要はありません。コードに進んでください。

Qq_sdk.php

コードは以下の通りです コードをコピー

/**

* QQ 開発プラットフォーム SDK

* 著者: 時々酔っ払い

* ブログ: www.stutostu.com

*/

クラス Qq_sdk{

/ /APP パラメータを設定します

private $app_id = あなたの APP ID;

private $redirect = あなたのコールバックアドレス;

function __construct()

{

}

/**

* [get_access_token access_token を取得]

* @param [string] $code [ログイン後に返される $_GET['code']]

* @return [array] [expires_in は有効期限、access_token は認証コード; 失敗するとエラーが返されます、error_description ]

*/

function get_access_token($code)

{

//Get access_token

$token_url = 'https://graph.qq.com/ oauth2 .0/token?grant_type=authorization_code&'

. 'client_id=' . $this->app_id . urlencode($this->redirect)// コールバック アドレス '&client_secret=' . $this->app_secret . $code;

$token = array();

parse_str($this->_curl_get_content($token_url) 、$ TOKEN); RETURN $ TOKEN} ( 'https://graph.qq.com/oauth2.0/me?access_token=' . $token);

if (strpos($str, “callback”) !== false)

{

$ lpos = strpos($str, “(”);

$rpos = strrpos($str, “)”);

$str = substr($str, $lpos + 1, $rpos – $lpos -1); ;

}

$user = json_decode($str, TRUE);

return $user;

/**

* [get_open_id ユーザーの一意の ID、openid を取得します]

* @param [文字列] $token [認証コード]

* @return [配列] [成功した場合は client_id と openid を、失敗した場合は error_msg を返します]

*/

function get_user_info($token, $open_id) )

{

//アセンブリ URL

$user_info_url = 'https://graph.qq.com/user/get_use

r_info?'

. $token

.キー= ' . $this->app_id

. '&openid='

$info ($this->_curl_get_content($user_info_url), TRUE) ;

return $info;

プライベート関数 _curl_get_content($url)

{

$ch =curl_init();急いで転送してください、本当です

; curl_setopt( $ch, CURLOPT_URL, $url);

//タイムアウトを 3 秒に設定します

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 3); ;

$result を返します。

使用方法: Web サイトにハイパーリンクを配置します。アドレスは次のとおりです: https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=your APP_ID&redirect_uri=your callback address

コールバック アドレス内上記の qq_sdk を呼び出すだけです。

デモは次のとおりです:

php QQ のサードパーティ ログイン SDK のプログラム コードを書き直しました。公式のものでは褒められなかったので、主に QQ の PHP SDK が本当に貧弱に書かれていると考えたので、純粋に AP を普及するために別のものを書きました...
コードは次のとおりです コードをコピー

if(empty($_GET['code']))

exit('Ill礼儀正しいパラメーター ');

print_r($token) ;

$open_id = $qq_sdk->get_open_id($token['access_token']);

$user_info = $ qq_sdk- >get_user_info ($token ['access_token'], $open_id['openid']);

http://www.bkjia.com/PHPjc/444589.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/444589.html

技術記事


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。