Strategi pembangunan_Sebelah pelayan
Prasyarat Membaca
Panduan pembangunan ini berdasarkan proses pengesahan kebenaran menggunakan Kod Kebenaran untuk mendapatkan Token Akses Ia sesuai untuk aplikasi yang perlu diakses dari pelayan web, seperti laman web Web/wap.
Sebelum membaca panduan pembangunan ini, sila baca [Log Masuk QQ] Gunakan Kod Kebenaran untuk Mendapatkan Token Akses untuk memahami proses pengesahan.
1. Alaminya
Nota:
Pengalaman ini berdasarkan mod tanpa pelayan, tetapi kesan pengalaman adalah sama seperti mod pelayan.
1. Akses penyemak imbas: http://qzs.qq.com/qzone/openapi/client.html.
2. Klik butang "Log Masuk" pada halaman:
3 Masukkan akaun QQ dan kata laluan dalam kotak log masuk pop timbul:
4 mengandungi Token Akses:
2 Mulakan dengan cepat
Persediaan
1. Sila pastikan laman web anda telah menghantar apl dan kekunci QQ berjaya. Mohon akses
2. Sila ping openapi.qzone.qq.com pada pelayan anda untuk memastikan sambungan lancar antara laman web dan Qzone.
Langkah1: Letakkan butang log masuk QQ
Laman web perlu memuat turun imej butang "log masuk QQ" dan letakkan butang itu di lokasi yang sesuai pada halaman mengikut spesifikasi UI.
Ikon Butang Muat Turun Butang Spesifikasi Peletakan
Langkah2: Dapatkan Kod Kebenaran
1 Buka penyemak imbas dan lawati alamat berikut (sila gantikan client_id, redirect_uri, skop dan nilai parameter lain dengan anda sendiri):
.
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=[YOUR_APPID]&redirect_uri=[YOUR_REDIRECT_URI]&scope=[THE_SCOPE]
2. Jika pengguna sudah log masuk, halaman pengesahan akan muncul. Jika anda belum log masuk, halaman log masuk akan muncul, seperti yang ditunjukkan di bawah:
3 Selepas log masuk berjaya, kotak kebenaran akan muncul untuk membimbing pengguna untuk membenarkan (hanya untuk log masuk pertama yang berjaya, dan yang pertama. masa untuk mengakses OpenAPI yang tidak dibenarkan Halaman kebenaran akan muncul), seperti yang ditunjukkan di bawah:
Nota:
Jika pengguna mengklik "Langkau", ia akan melompat ke alamat panggilan balik dan kembali ke avatar lalai, nama panggilan dan jantina .
Adalah disyorkan bahawa aplikasi pihak ketiga mengawal item kebenaran, iaitu, hanya nama OpenAPI yang mesti digunakan diluluskan dalam skop parameter. Oleh kerana lebih banyak item kebenaran terdapat, lebih besar kemungkinan pengguna menafikan kebenaran.
4. Jika pengguna mengklik "Sahkan" untuk membenarkan, ia akan berjaya melompat ke redirect_uri yang ditentukan dan mengikut Kod Kebenaran (Perhatikan bahawa kod ini akan tamat tempoh dalam masa 10 minit).
Sebagai contoh, jika alamat panggil balik ialah: www.qq.com/my.php, ia akan melompat ke:
http://www.qq.com/my.php?code=520DD95263C1CFEA0870FBB66E**** **
Nota:
Adalah disyorkan untuk menetapkan alamat panggilan balik ke halaman utama laman web atau pusat pengguna tapak web.
Langkah3: Dapatkan Token Akses melalui Kod Kebenaran
1 Hantar permintaan ke alamat berikut (sila gantikan nilai parameter dengan anda sendiri, lihat di sini untuk penjelasan parameter):
: / graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=[YOUR_APP_ID]&client_secret=[YOUR_APP_Key]&code=[The_AUTHORIZATION_CODE]&state=[The_CLIENT_STATE]&redirect_
URI=YUR_
Token akses yang diperolehi mempunyai tempoh sah selama 3 bulan dan akan dimuat semula secara automatik apabila pengguna log masuk semula.
Tapak web pihak ketiga boleh menyimpan maklumat token akses untuk kegunaan seterusnya apabila memanggil OpenAPI untuk mengakses dan mengubah suai maklumat pengguna.
Langkah4: Gunakan Token Akses untuk mendapatkan OpenID pengguna
1 Hantar permintaan ke alamat berikut (sila gantikan nilai parameter seperti access_token dengan anda sendiri):
https://graph. .qq. com/oauth2.0/me?access_token=YOUR_ACCESS_TOKEN
2 Dapatkan OpenID pengguna, dan pakej pemulangan adalah seperti berikut:
callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} );
Akses ke ID
. akses dan ubah suai data pengguna
1. Adalah disyorkan agar tapak web memanggil antara muka get_user_info selepas pengguna log masuk untuk mendapatkan avatar dan nama panggilan pengguna dan memaparkannya di tapak web untuk menjadikan pengalaman pengguna bersatu.
2. Panggil OpenAPI lain untuk mengakses dan mengubah suai data pengguna. Untuk semua butiran OpenAPI, sila rujuk dokumen API [Log Masuk QQ].
https://graph .qq.com/user /get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID
//Alamat panggilan balik selepas kebenaran berjaya
$my_url = "URL_REDIRECT_ANDA";
$code = $_REQUEST["kod"]; if(kosong($kod)) . = md5(uniqid(rand(), TRUE)); / / Splicing URL
$dialog_url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=". $ _SESSION['state']; echo("<script> top.location.href='" . $dialog_url . "'</script>"); }
if ($ _ Request ['State'] == $ _Session ['State'])
{
// 拼接 url
$ token_url = "https: // grafik. qq.com/oauth2.0/token?grant_type=authorization_code&"
. "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret . "&kod=" . $code;
$response = file_get_contents($token_url);
if (strpos($response, "callback") !== false)
{
$lpos = strpos($ response, "callback") !== false)
{
$ $lpos = strpos($ = strpos($ = strpos($ = strpos($ = strpos) strrpos($response, ")");
$response = substr($response, $lpos + 1, $rpos - $lpos -1);
$msg = json_decode($response); ditetapkan ($ ->ralat))
{
gema "<h3>ralat:</h3>" . $msg->error;
gema "<h3>msg :</h3>" . $msg->error_description;
keluar;
}
}
if (strpos ($ str," callback ")! $str, "(");
$rpos = strrpos($str, ")");
$str = substr($str, $lpos + 1, $rpos - $lpos -1); $str = substr($str, $lpos + 1, $rpos - $lpos -1); = json_decode($str);
if (isset($user->error))
{
echo "<h3>error:</h3>" . $user->error;
echo "<h3>msg :</h3>" . $user->error_description;
keluar;
}
echo("Hello " . $user->openid);
}
lainnya (
lain mangsa CSRF .");
}
?>