公式ドキュメントに従って書かれています
/**
* 申請 http://connect.opensns.qq.com/apply
* リスト http://connect.opensns.qq.com/my
*/
session_start();
$qq_oauth_config = array(
'oauth_consumer_key'=>'*******',//APP ID
'oauth_consumer_secret'=>'************** ***',//APP KEY
'oauth_callback'=>"http://www.955.cc/qq.php?action=reg",//这里修正は当前の脚本,但要保持?action= reg
'oauth_request_token_url'=>"http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token",
'oauth_authorize_url'=>'http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize' 、
'oauth_request_access_token_url'=>'http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token'、
'user_info_url' => 'http://openapi.qzone.qq.com/user/get_user_info' 、
);
$action = isset($_GET['action']) ? $_GET['アクション'] : '';
$qq = 新しい qq_oauth($qq_oauth_config);
switch($action){
//用户登录 Step1:请要求临タイムトークン
case 'login':
$token = $qq->oauth_request_token();
$_SESSION['oauth_token_secret'] = $token['oauth_token_secret'];
$qq->authorize($token['oauth_token']);
休憩;
//ステップ 4:Qzone 引导用户跳转第三方应用
case 'reg':
$qq->register_user();
$access_token = $qq->request_access_token();
if($token = $qq->save_access_token($access_token)){
//保存,一般公開给用户cookie,および用户入库
//var_dump($token);
$_SESSION['oauth_token'] = $token['oauth_token'];
$_SESSION['oauth_token_secret'] = $token['oauth_token_secret'];
$_SESSION['openid'] = $token['openid'];
header('Content-Type: text/html; charset=utf-8');
$user_info = json_decode($qq->get_user_info());
if($user_info->ret!=0){
exit("获取头像昵称時発行错误".$user_info->msg);
} else {
echo 'QQ昵称:',$user_info->ニックネーム,
'

'

'

}
}
休憩;
デフォルト:
}
class qq_oauth{
private $config;
function __construct($config){
$this->config = $config;
}
/**
* 設定を返す
* @param string $name
*
*/
function C($name){
return isset($this->config[$name]) ? $this->config[$name] : FALSE;
}
/**
* ビルドリクエスト URL
* @param string $url
* @param array $params
* @param string $oauth_token_secret
*
*/
function build_request_uri($url,$params=array(),$oauth_token_secret=''){
$oauth_consumer_key = $this->C('oauth_consumer_key');
$oauth_consumer_secret = $this->C('oauth_consumer_secret');
$params = array_merge(array(
'oauth_version'=>'1.0',
'oauth_signature_method'=>'HMAC-SHA1',
'oauth_timestamp'=>time(),
'oauth_nonce'=> rand(1000,99999999),
'oauth_consumer_key'=>$oauth_consumer_key,
),$params);
$encode_params = $params;
ksort($encode_params);
$oauth_signature = 'GET&'.urlencode($url).'&'.urlencode(http_build_query($encode_params));
$oauth_signature =base64_encode(hash_hmac('sha1',$oauth_signature,$oauth_consumer_secret.'&'.$oauth_token_secret,true));
$params['oauth_signature'] = $oauth_signature;
$url を返します。'?'.http_build_query($params);
}
/**
* コールバックが合意されたパラメータを返すかどうかを確認します
*/
function check_callback(){
if(isset($_GET['oauth_token']))
if(isset($_GET['openid']))
if(isset( $_GET['oauth_signature']))
if(isset($_GET['timestamp']))
if(isset($_GET['oauth_vericode']))
return true;
false を返します。
}
function get_contents($url){
$curl =curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_URL,$url);
curl_exec($curl)を返します;
}
/**
* ステップ 1: 一時トークンを要求、ステップ 2: 未承認の一時トークンを生成します
*/
function oauth_request_token(){
$url = $this->build_request_uri($this->C('oauth_request_token_url'));
$tmp_oauth_token = $this->get_contents($url);
parse_str($tmp_oauth_token);
/*
oauth_token 未許可の 2 回トークン
oauth_token_secret トークンの秘密、この秘密トークンは 2 回に制限されています
error_code 错误番号
*/
if(isset($error_code)) exit($error_code);
return array(
'oauth_token'=>$oauth_token,
'oauth_token_secret'=>$oauth_token_secret
);
}
/**
* ステップ 3: ユーザーを Qzone ログイン ページに案内します
* @param string $oauth_token 未承認の一時トークン
*/
function authorize($oauth_token){
$str = "HTTP/1.1 302 が見つかりました"
$url = $this->C('oauth_authorize_url'; );
$query_strings = http_build_query(array(
'oauth_consumer_key'=>$this->C('oauth_consumer_key'),
'oauth_token'=>$oauth_token,
'oauth_callback'=>$this-> ;C('oauth_callback'),
));
header('Location: '.$url.'?'.$query_strings);
/**
* ステップ 4: Qzone は、ユーザーがサードパーティのアプリケーションにジャンプするようにガイドします
* @return bool 有効かどうかを確認します
*/
function register_user(){
/ *
* oauth_token 認可された一時トークン
* openid Tencent ユーザーの統一外部 ID、OpenID はユーザーの QQ 番号に 1 対 1 で対応します
* oauth_signature 署名値。これにより、第三者が openid とソースの信頼性を検証することが容易になります。
* HMAC-SHA1 アルゴリズムを使用します:
* ソース文字列: openid+timestamp (文字列の途中に「+」記号を追加しないでください)
* キー: oauth_consumer_secret
* timestamp openid のタイムスタンプ
* oauth_vericode 認証検証コード。
*/
if($this->check_callback()){
//署名を検証する
$signature =base64_encode(hash_hmac('sha1',$_GET['openid'].$_GET['timestamp'], $ this->C('oauth_consumer_secret'),true));
if(!emptyempty($_GET['oauth_signature']) && $signature==$_GET['oauth_signature']){
$_SESSION['oauth_token ' ] = $_GET['oauth_token'];
$_SESSION['oauth_vericode'] = $_GET['oauth_vericode']
return;
}
//終了('UNKNOW REQUEST') ;
/**
* ステップ5: アクセストークンをリクエストします
*/
function request_access_token(){
$url = $this->build_request_uri($this->C('oauth_request_access_token_url'),array(
'oauth_token'=> $_SESSION[ 'oauth_token'],
'oauth_vericode'=>$_SESSION['oauth_vericode']
),$_SESSION['oauth_token_secret']);
return $this->get_contents($url);
* ステップ6: アクセストークンの生成(アクセストークンの保存)
*
* access_token について
* 現在のところ、access_token (およびそのシークレット) は長期間有効であり、特定の openid に対応することができます。オフラインで取得できます。
* もちろん、ユーザーは Qzone 上で第三者への認可を削除する権限を持っています。この時点で、access_token は無効になり、プロセス全体がユーザーによって再認可される必要があります。
* 今後、access_tokenの有効期限は長期有効、短期有効、ユーザーログイン時のみ有効など徐々に充実していきます。
*/
function save_access_token($access_token_str){
parse_str($access_token_str,$access_token_arr);
if(isset($access_token_arr['error_code'])){
return $access_token_arr; ;
}
}
/**
* 現在 Tencent はこの API のみを公開しています
* ログインユーザー情報の取得 現在、ユーザーのニックネームとアバター情報を取得できます。
* http://openapi.qzone.qq.com/user/get_user_info
*/
function get_user_info(){
$url = $this->build_request_uri($this->C('user_info_url'),array(
' oauth_token'= >$_SESSION['oauth_token'],
'openid'=>$_SESSION['openid'],
),$_SESSION['oauth_token_secret'])
return $this->get_contents($ url);
}
}
ファイルパッケージのダウンロード qq_php.rar
転載元: http://dev.meettea.com
http://www.bkjia.com/PHPjc/323931.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/323931.html

山野间万鬼嘶鸣,隐没兵刃交接之声,越岭奔赴而来的鬼将,心中战意汹涌,以炎火为号,率百鬼冲锋迎战。【炽焱百炼•茨木童子典藏皮肤上线】鬼角炽焰怒燃,鎏金眼眸迸发桀骜战意,白玉甲片装点战袍,彰显大妖不羁狂放的气势。雪白飘扬的袖摆上,赤焰攀附交织,金纹烙印其中,燃点一片绯艳妖异色彩。妖力凝聚而成的鬼火咆哮而至,烈焰令群峦为之震动,炼狱间归来的妖鬼啊,一同惩戒进犯之人吧。【专属动态头像框•炽焱百炼】【专属插画•焰火将魂】【传记鉴赏】【获取方式】茨木童子典藏皮肤·炽焱百炼将于12月28日维护后上架皮肤商店,

Steam登录错误E84是Steam用户在多次登录尝试中遇到的常见登录。如果您无法登录Steam,则无法执行任何有用的操作。如果您不先处理此E84登录错误,您将面临大量问题。初步解决方法–1.如果您是第一次在Steam中遇到此E84错误,重新启动系统可能会修复它。关闭Steam应用程序。将其从系统托盘中退出。然后,重新启动系统并重试整个过程。2.检查互联网连接是否有故障。如果您的互联网连接速度较慢,Steam登录可能会引发E84。修复1–将noreactlogin添加到Steam可执行文件您必须

1.1.1.1上网认证系统登录方法:1、搜索校园网无线信号并连接;2、打开浏览器,在弹出的身份验证界面选择“自助服务”;3、输入用户名和初始密码进行登录;4、完善个人信息并设置为强密码即可。

GitHubCopilot是编码人员的下一个级别,它基于AI的模型可以成功预测和自动完成您的代码。但是,您可能想知道如何在您的设备上加入这个AI天才,以便您的编码变得更加容易!但是,使用GitHub并不是很容易,初始设置过程是一个棘手的过程。因此,我们创建了这个分步教程,介绍如何在Windows11、10上的VSCode中安装和实现GitHubCopilot。如何在Windows上安装GitHubCopilot此过程有几个步骤。因此,请立即执行以下步骤。步骤1–您必须在计算机上安装最新版本的可视

在我们使用win7操作系统的过程中,我们通常会给电脑设置一个密码。最近就有小伙伴想要了解win7登陆了怎么查看电脑密码,其实win7查看电脑密码的方法非常简单。今天小编就来告诉大家win7查看电脑密码怎么操作。下面就让我们一起来看看吧!win7查看电脑密码的方法:1、按下win键+r键,输入rundll32netplwiz.dll,UsersRunDll,然后点击确定。2、取消勾选“要使用本机,用户必须输入用户名和密码”3、取消后点击确定,在弹出的对话框中不要输入你想让电脑每次自动登录的账户和密

您无法登录Microsoft帐户的原因有多种。虽然它很少发生,但当它发生时,它可能会令人沮丧。例如,在Windows11中,发生这种情况的原因之一是由于MicrosoftStore内置应用程序有时会损坏并停止正常工作。例如,这位Reddit用户遇到了这个问题,其他用户通过一个简单的解决方案来拯救,该解决方案似乎最终奏效了。为了能够重新登录Microsoft帐户,需要重新安装所有内置的Microsoft应用商店应用。事情是这样的。以管理员身份打开Powershell应用。输入以下命令:Get-Ap

在许多网络应用程序中,登录是一项必须的操作。然而,在一些情况下,尤其是在一些无需提供极高安全性的应用程序中,我们可以实现免登录功能,减轻用户登录的时间和操作次数。下面我们将介绍如何通过Javascript实现免登录功能。步骤一:使用cookie存储登录状态Cookies是一种为Web提供的数据存储方式,它可以将数据存储在用户本地计算机中。通过设置cookie

电脑版微信登录不了是由于网络连接问题、账号密码输入错误、微信服务器故障、操作系统或应用程序问题以及账号被封禁或异常登录等原因所导致。详细介绍:1、网络连接问题,尝试重新连接网络或者更换网络环境;2、账号密码输入错误,尝试使用手机版微信登录来确认账号和密码是否正确;3、微信服务器故障,尝试等待一段时间后再次尝试登录;4、操作系统或应用程序问题,尝试更新操作系统或者微信应用程序等。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック



