เว็บไซต์แอปพลิเคชันสำหรับอินเทอร์เฟซเข้าสู่ระบบแพลตฟอร์มที่สาม: http://open.51094.com/
เอกสาร:
เพื่ออำนวยความสะดวกให้เพื่อนพัฒนามากขึ้นฉันได้รวมอินเทอร์เฟซทั้งหมดในตลาดที่สนับสนุนการเข้าสู่ระบบร่วมของบุคคลที่สามเป็นพิเศษ การเข้าสู่ระบบที่ใช้ในการพัฒนาหลายครั้งสามารถเสร็จสิ้นได้ในครั้งเดียว ไม่จำเป็นต้องชะลอความคืบหน้าของโครงการโดยรอการตรวจสอบ ใช้งานง่ายและใช้งานง่าย ต่อไปนี้เป็นวิธีการใช้งานเฉพาะของปลั๊กอินนี้:
1. เข้าสู่ระบบครั้งแรกในเว็บไซต์ http://open.51094.com/
2. คลิกปุ่ม "เข้าสู่ระบบ" ที่มุมขวาบนเพื่อเข้าสู่ระบบหลังจากเข้าสู่ระบบได้สำเร็จมันจะข้ามไปยังศูนย์การจัดการโดยอัตโนมัติ
3. หลังจากเข้าสู่ศูนย์การจัดการให้คลิกปุ่มสร้างแอปพลิเคชันดังที่แสดงด้านล่าง:
4. เลือกประเภทแอปพลิเคชันเป็น "แอปพลิเคชันเว็บไซต์" และหลังจากเสร็จสิ้นให้ข้ามไปที่หน้าการเติมข้อมูลแอปพลิเคชัน
5. หน้าการเติมข้อมูลจะแสดงในรูปด้านล่าง กรอกข้อมูลแอปพลิเคชันอย่างถูกต้องตามที่ต้องการ หลังจากเสร็จสิ้นให้คลิกสร้างแอปพลิเคชันเพื่อใช้งาน
คำอธิบายพารามิเตอร์:
ชื่อ: ตัวย่อของแอปพลิเคชัน
รายละเอียด: ข้อมูลคำอธิบายแอปพลิเคชันจำนวนคำต้องไม่น้อยกว่า 10 อักขระภาษาจีน
เข้าสู่ระบบที่อยู่โทรกลับสำเร็จ:
ผู้สมัครรับ URL ของข้อมูลผู้ใช้และเราแจ้งผู้สมัครในรูปแบบของพารามิเตอร์ URL+?+ โปรดจำไว้ว่า URL ที่คุณเติมไม่สามารถมีได้?
วิธีการเข้าสู่ระบบที่รองรับ:
ระบุตัวเลือกของคุณเองค่าเริ่มต้นคือการเลือกทั้งหมด
สร้างไดอะแกรมแอปพลิเคชัน
1. คุณสามารถดูที่อยู่ JS ที่แอปพลิเคชันจำเป็นต้องอ้างอิงในศูนย์การจัดการของศูนย์ผู้ใช้ดังที่แสดงในกล่องสีแดงในรูปด้านล่าง:
2. เพิ่มรหัส JS ต่อไปนี้ในหน้าคุณต้องเข้าสู่ระบบ
<script type = "text/javascript" src = "http://open.51094.com/user/myscript/153dee5be21e2.html"> </script>
3. เพิ่ม (<span id = "hzy_fast_login"> </span>) ไปยังแท็กหน้าดังแสดงในรูปต่อไปนี้
4. หลังจากเข้าร่วมสำเร็จคุณจะเห็นการเข้าสู่ระบบที่เกี่ยวข้องในหน้าเข้าสู่ระบบ ดังที่แสดงในรูปด้านล่าง
โปรดใช้วิธีที่สองในการลงทะเบียนผู้ใช้หลังจาก 2014-11-1
แผน 1 (เลิกใช้แล้ว)
วิธีการโทรกลับ | รับ | |
URL การโทรกลับ | ที่อยู่การโทรกลับเข้าสู่ระบบที่กรอกเมื่อสมัครแอปพลิเคชัน | |
รูปแบบการโทรกลับ | http: //url/user/hezuo.html? param =%7b%22name%22%3a%22oh%21no%22%2C%22IMG%22%3A%22HTTP%3A%5C%2F%5C%2FQ.QLOGO.CN 8927%5C%2F863A85B9B176E2408E05DF05D46FDB3F%5C%2F100%22C%22S.2SEX%22%3A0%2C%22UNIQ%22%3A%22QQO8HDWKMKPVI%2C% | |
พารามิเตอร์ | หลังจากได้รับเนื้อหาพารามิเตอร์พารามิเตอร์ให้ทำการถอดรหัส URL ก่อนจากนั้นทำการถอดรหัส JSON เพื่อรับเนื้อหาต่อไปนี้: | |
ชื่อ | เข้าสู่ระบบเพื่อรับชื่อผู้ใช้ | |
IMG | ที่อยู่อวตาร | |
เพศ | เพศ | |
Uniq | รหัสเดียวที่ได้รับจากบุคคลที่สาม | |
จาก | แหล่งข้อมูลเข้าสู่ระบบเช่น QQ, Weibo, Renren ฯลฯ | |
แผน 2
โปรดดูที่: http://test.open.51094.com/index.php
วิธีการโทรกลับ | รับ | |
URL การโทรกลับ | ที่อยู่การโทรกลับเข้าสู่ระบบที่กรอกเมื่อสมัครแอปพลิเคชัน | |
รูปแบบการโทรกลับ | http: //url/user/hezuo.html? code = code | |
พารามิเตอร์ | หลังจากได้รับเนื้อหาพารามิเตอร์รหัสให้ใช้วิธีการโพสต์เพื่อขอ: URL: http://open.51094.com/user/auth.html โพสต์พารามิเตอร์: ประเภท: get_user_info รหัส: ค่ารหัสที่ส่งคืน AppId: AppId Value ที่ใช้ (คลิกชื่อแอปพลิเคชันบนหน้าเว็บเพื่อรับ) โทเค็น: ค่าโทเค็นที่ใช้ (คลิกชื่อแอปพลิเคชันบนหน้าเว็บเพื่อรับ) ข้อมูลจะถูกส่งคืนในรูปแบบของสตริง JSON หลังจากได้รับข้อมูลแล้ว JSON_DECODE ($ STR, TRUE) จะได้รับเนื้อหาต่อไปนี้: (ดูที่ภาคผนวกสำหรับวิธีการได้มา) | |
ชื่อ | เข้าสู่ระบบเพื่อรับชื่อผู้ใช้ | |
IMG | ที่อยู่อวตาร | |
เพศ | เพศ | |
Uniq | รหัสเดียวที่ได้รับจากบุคคลที่สาม | |
จาก | แหล่งข้อมูลเข้าสู่ระบบเช่น QQ, Weibo, Renren ฯลฯ | |
ปลั๊กอินนี้เป็นปลั๊กอินฟรีและสามารถใช้เพื่อวัตถุประสงค์ในเชิงพาณิชย์ โปรดทำเครื่องหมายนักพัฒนาเมื่อใช้งาน
หมายเหตุเกี่ยวกับการใช้:
1. ชื่อโดเมนของหน้าอ้างอิง JS จะต้องเหมือนกับชื่อโดเมนของที่อยู่โทรกลับเมื่อสมัคร
2. ต้องเพิ่มแท็กที่มี id = 'hzy_fast_login' ลงในหน้าหลังจาก js อ้างอิง
3. URL การโทรกลับที่ร้องขอไม่ได้รับอนุญาตให้ปรากฏหรือไม่?
ชุดรหัสข้อผิดพลาด:
รหัสข้อผิดพลาด | คำถาม |
1,0001 | ข้อผิดพลาดของผู้ใช้ |
1,0002 | โทเค็นไม่ตรงกับ appid |
1,0003 | ชื่อโดเมนที่ร้องขอไม่ตรงกับชื่อโดเมนที่ลงทะเบียน (มีที่อยู่โทรกลับเพื่อกำหนดชื่อโดเมนที่ลงทะเบียน) |
หมดเวลา | เข้าสู่ระบบหมดเวลาต้องเข้าสู่ระบบอีกครั้ง |
ภาคผนวก:
PHP ได้รับรหัสข้อมูล: ซอร์สโค้ด http://test.open.51094.com/index.php
1. ไฟล์กำหนดค่าเปิด. config.php
เนื้อหา:
<? php
-
*@ ที่อยู่ที่ลงทะเบียน http://open.51094.com
*@ QQ การสื่อสารกลุ่ม: 373703921
*@ ที่อยู่บล็อก: http://www.51094.com
*@ ที่อยู่ทดสอบ: http://open.51094.com/user/login.html
-
*@ Author: [email protected]
-
-
กำหนด ('appid', 'appid ที่ได้รับเมื่อสมัคร');
กำหนด ('โทเค็น', 'ค่าโทเค็นที่ได้รับเมื่อสมัคร');
-
2. ไฟล์เปิดคลาส Open51094.class.php
<? php
รวม 'open.config.php';
คลาส Open51094 {
ส่วนตัว $ appid;
โทเค็นส่วนตัว $;
ส่วนตัว $ return_uri;
ส่วนตัว $ access_token;
ส่วนตัว $ url = 'http://open.51094.com/user/auth.html';
ฟังก์ชั่น __Construct () {
$ this-> appid = appid;
$ this-> token = token;
-
ฟังก์ชั่นฉัน ($ รหัส) {
#$ this-> getAccessToken ();
$ params = array (
'type' => 'get_user_info'
'รหัส' => $ รหัส
'appid' => $ this-> appid,
'โทเค็น' => $ this-> โทเค็น
-
ส่งคืน $ this-> http ($ params);
-
ฟังก์ชั่นส่วนตัว http ($ postfields = '', $ method = 'post', $ headers = array ()) {
$ ci = curl_init ();
curl_setopt ($ ci, curlopt_ssl_verifypeer, false);
curl_setopt ($ ci, curlopt_returntransfer, 1);
curl_setopt ($ ci, curlopt_connecttimeout, 30);
curl_setopt ($ ci, curlopt_timeout, 30);
if ($ method == 'post') {
curl_setopt ($ ci, curlopt_post, true);
if ($ postfields! = '') curl_setopt ($ ci, curlopt_postfields, $ postfields);
-
$ headers [] = "ผู้ใช้ตัวแทน: 51094php (open.51094.com)";
curl_setopt ($ ci, curlopt_httpheader, $ headers);
curl_setopt ($ ci, curlopt_url, $ this-> url);
$ response = curl_exec ($ ci);
curl_close ($ ci);
$ json_r = array ();
if (! empty ($ response)) $ json_r = json_decode ($ response, true);
ส่งคืน $ json_r;
-
-
-
3. กลับไปที่หน้า back.php
<? php
รวม 'Open51094.class.php';
$ open = new Open51094 ();
$ code = $ _get ['code'];
var_dump ($ open-> me ($ code));
-
Java ได้รับรหัสข้อมูล:
นำเข้า java.util.date;
นำเข้า java.util.uuid;
นำเข้า javax.servlet.http.httpservletrequest;
นำเข้า Javax.servlet.http.httpservletResponse;
นำเข้า org.apache.struts2.servletactionContext;
นำเข้า org.json.jsonObject;
นำเข้า org.springframework.beans.factory.annotation.autowired;
นำเข้า org.springframework.context.annotation.scope;
นำเข้า org.springframework.stereotype.controller;
@suppresswarnings ("อนุกรม")
@Controller
@Scope ("ต้นแบบ")
ชั้นเรียนสาธารณะ userthirdpartyaction {
// พารามิเตอร์ที่จัดทำโดยแพลตฟอร์มบุคคลที่สาม
สตริงคงที่ส่วนตัว appid = "15 *********";
โทเค็นสตริงคงที่ส่วนตัว = "14 *********";
String สาธารณะ thirldlogin () {
httpservletRequest request = servletactionContext.getRequest ();
รหัสสตริง = checkNull.check (request.getParameter ("รหัส"));
System.out.println ("ผลการเข้าสู่ระบบของบุคคลที่สามผลตอบแทนผล:"+รหัส);
if ("". เท่ากับ (รหัส) || null == รหัส) {
System.out.println ("ฟังก์ชั่นการโทรกลับไม่ได้ดำเนินการ");
กลับ "ล้มเหลว";
}อื่น{
String url = httprequest.sendpost ("http://open.51094.com/user/auth.html", "type = get_user_info & code ="+code+"& appid ="+appid+"& token ="+token+"");
System.out.println (URL);
// ผลการวิเคราะห์
jsonObject jsonobj = new JsonObject (url);
// รับวัตถุค่าของวัตถุคีย์ JSON ที่ระบุ
// แยกวิเคราะห์วัตถุที่ห่อหุ้ม
กลับ "เปลี่ยนเส้นทาง";
-
-
-
คลาส httprequet:
แพ็คเกจ wzh.http;
นำเข้า java.io.bufferedreader;
นำเข้า java.io.ioException;
นำเข้า Java.io.InputStreamReader;
นำเข้า java.io.printwriter;
นำเข้า java.net.url;
นำเข้า java.net.urlconnection;
นำเข้า java.util.list;
นำเข้า java.util.map;
ชั้นเรียนสาธารณะ httprequest {-
* ส่งคำขอไปยัง URL ที่ระบุสำหรับวิธีการรับ
-
* @param url
* URL เพื่อส่งคำขอ
* @param param
* พารามิเตอร์การร้องขอพารามิเตอร์การร้องขอควรอยู่ในรูปแบบของ NAME1 = value1 & name2 = value2
* @return url ผลการตอบกลับสำหรับทรัพยากรระยะไกลที่แสดงโดย
-
String String สาธารณะ sendget (rl string, string param) {สตริงผลลัพธ์ = "";
bufferedReader ใน = null;
พยายาม {string urlnamestring = url + "?" + param;
url realurl = url ใหม่ (urlnamestring);
// เปิดการเชื่อมต่อกับ URL
การเชื่อมต่อ urlConnection = realUrl.openconnection ();
// ตั้งค่าแอตทริบิวต์คำขอทั่วไป
Connection.setRequestProperty ("ยอมรับ", "*/*"); Connection.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); Connection.setRequestProperty ("ผู้ใช้ตัวแทน""Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1; SV1)");
// สร้างการเชื่อมต่อการเชื่อมต่อจริง connect ();
// รับฟิลด์ส่วนหัวการตอบกลับทั้งหมด
แผนที่ <สตริงรายการ <สตริง >> แผนที่ = connection.getheaderfields ();
// วนผ่านฟิลด์ส่วนหัวการตอบสนองทั้งหมด
สำหรับ (คีย์สตริง: map.keyset ()) {System.out.println (คีย์ + "->" + map.get (คีย์));
-
// กำหนดสตรีมอินพุต bufferedReader เพื่ออ่านการตอบสนอง URL
ใน = ใหม่ bufferedReader (ใหม่ inputStreamReader (
Connection.getInputStream ()));
สายสตริง;
ในขณะที่ ((line = in.readline ())! = null) {ผลลัพธ์ += บรรทัด;
-
} catch (Exception e) { System.out.println ("ข้อยกเว้นเกิดขึ้นเมื่อส่งคำขอรับ!" + e);E.PrintStackTrace ();
-
// ใช้บล็อกในที่สุดเพื่อปิดสตรีมอินพุต
ในที่สุด { พยายาม { ถ้า (ใน! = null) {in.close ();
-
} catch (Exception e2) {e2.printstacktrace ();
-
-
ผลการกลับมา;
-
-
* ส่งคำขอสำหรับวิธีการโพสต์ไปยัง URL ที่ระบุ
-
* @param url
* URL เพื่อส่งคำขอ
* @param param
* พารามิเตอร์การร้องขอพารามิเตอร์การร้องขอควรอยู่ในรูปแบบของ NAME1 = value1 & name2 = value2
* @return ผลการตอบกลับของทรัพยากรระยะไกลที่แสดง
-
สตริงคงที่สาธารณะ sendPost (url สตริง, พารามิเตอร์สตริง) {printwriter out = null;
bufferedReader ใน = null;
สตริงผลลัพธ์ = "";
พยายาม {url realurl = url ใหม่ (url);
// เปิดการเชื่อมต่อกับ URL
urlConnection conn = realurl.openconnection ();
// ตั้งค่าแอตทริบิวต์คำขอทั่วไป
conn.setRequestProperty ("ยอมรับ", "*/*"); conn.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); conn.setRequestProperty ("ผู้ใช้ตัวแทน""Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1; SV1)");
// สองบรรทัดต่อไปนี้จะต้องตั้งค่าเพื่อส่งคำขอโพสต์
conn.setDooutput (จริง);
conn.setDoInput (จริง);
// รับกระแสเอาต์พุตที่สอดคล้องกับวัตถุ URLConnection
out = new printWriter (conn.getOutputStream ());
// ส่งพารามิเตอร์คำขอ
out.print (param);
// บัฟเฟอร์ของกระแสไฟฟลัช
out.flush ();
// กำหนดสตรีมอินพุต bufferedReader เพื่ออ่านการตอบสนอง URL
ใน = ใหม่ bufferedReader (
ใหม่ inputStreamReader (conn.getInputStream ()));
สายสตริง;
ในขณะที่ ((line = in.readline ())! = null) {ผลลัพธ์ += บรรทัด;
-
} catch (Exception e) { System.out.println ("ข้อยกเว้นเกิดขึ้นเมื่อส่งคำขอโพสต์!" +e);E.PrintStackTrace ();
-
// ใช้บล็อกในที่สุดเพื่อปิดสตรีมเอาต์พุตและสตรีมอินพุต
ในที่สุด{ พยายาม{ ถ้า (ออก! = null) {out.close ();
-
ถ้า (ใน! = null) {in.close ();
-
-
จับ (ioexception ex) {Ex.PrintStackTrace ();
-
-
ผลการกลับมา;
-
-
แนบโพสต์การเขียนและวิธีการอ่าน:
// แลกเปลี่ยนเพื่อรับวิธีที่มีค่าโพสต์วิธี;
ล็อกอินสตริงคงที่สาธารณะ (รหัสสตริง)
-
String info = string.empty;
if (code! = "" && code! = null)
-
httphelper m_http = new httphelper ();
รายการ httpitem = ใหม่ httpitem ();
// item.method = "post";
item.url = "http://open.51094.com/user/auth.html";
item.method = "โพสต์";
item.encoding = encoding.getEncoding ("GBK");
item.contentType = "แอปพลิเคชัน/x-www-form-urlencoded; charset = gbk";
item.postData = string.format ("type = get_user_info & code = {0} & appid = 1558be447a9ec7 & token = e383684d8f0acb39d622457f361dc1dc", รหัส);
// item.postdata = sbtemp.toString ();
httpresult result = m_http.gethtml (รายการ);
สตริง resulthtml = result.html;
JOBJECT OBJ = JOBJECT.PARSE (RESULTHTML);
ชื่อสตริง = obj ["ชื่อ"]. toString ();
string img = obj ["img"]. toString ();
String sex = obj ["sex"]. toString ();
string uniq = obj ["uniq"]. toString ();
สตริงจาก = obj ["จาก"]. toString ();
info = name + "@" + img + "@" + sex + "@" + uniq + "@" + จาก;
-
ข้อมูลส่งคืน;
-
// ยอมรับรหัสเพื่อส่งคืนหน้ารหัส
// การเข้าสู่ระบบอินเตอร์เฟส
String code = request ["code"];
String [] arr = publiclogin.login (รหัส) .split ('@');
ถ้า (arr.length == 5)
-
string unip = arr [3];
String sql = string.format ("เลือก * จาก bs_user โดยที่ unip = '{0}'", unip);
if (csa.dal.dbaccess.getrs (sql) .rows.count> 0)
-
if (csa.dal.dbaccess.getrs (SQL) .rows [0] ["รหัสผ่าน"]. toString () == "" || csa.dal.dbaccess.getrs (sql) .rows [0] ["รหัสผ่าน"] == null)
-
string str = string.format ("location.href = 'myinformation.aspx? unip = {0}'", arr [3]);
csa.hc.common.echojs (STR);
-
อื่น
-
bs_user user = new bs_user ();
user.unip = unip;
Factory.getUserBllinStance (). LoginUnip (ผู้ใช้);
if (curinfo.curuser! = null)
-
levelName = curinfo.curuser.levelName;
name = curinfo.curuser.name;
เพศ = curinfo.curuser.sex;
pwd = curinfo.curuser.password;
img = curinfo.curuser.pic;
-
csa.hc.common.echojs ("location.href = 'myinformation.aspx'");
-
-
อื่น
-
// สร้างรหัสสมาชิก
String date = datetime.now.toString ("ymdhmssffff");
string userCode = getTreenumRandomTop () + วันที่ + getTreenumRandomend ();
string ip = httpcontext.current.request.userhostaddress;
String inssql = string.format (@"แทรกลงใน [bs_user] ([รหัส], [ชื่อผู้ใช้], [levelname], [realname], [เพศ], [pic], [unip], [รหัสผ่าน], [โทรศัพท์], [fxip]))
ค่า ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}') usercode.substring (3, 8), arr [0] .trim ('' '), arr [2], arr [1] .trim (' "'), arr [3], csa.security.encrypt.getmd5 (" 123456 ")," fkt_ " + usercode.substring (3);
int row = csa.dal.dbaccess.executenonQuery (inssql);
ถ้า (แถว> 0)
-
bs_user user = new bs_user ();
user.unip = arr [3];
Factory.getUserBllinStance (). LoginUnip (ผู้ใช้);
string str = string.format ("location.href = 'myinformation.aspx? unip = {0}'", arr [3]);
csa.hc.common.echojs (STR);
-
-
-