SDK เข้าสู่ระบบ WeChat OAuth
เพิ่มการกำหนดค่าต่อไปนี้ลงในไฟล์ composer.json
ของคุณ
"henter/wechat-oauth" : " dev-master "
จากนั้นใช้ Composer เพื่อติดตั้ง SDK
composer install
หาก Packagist ล้มเหลวหรือไม่พร้อมใช้งานและไม่สามารถติดตั้ง SDK ได้ คุณสามารถใช้ Satis หรือ Artifact เพื่อติดตั้งในเครื่องได้ โปรดดูรายละเอียดที่ Repositories ในเอกสารประกอบของ Composer
คัดลอก lib/Henter/WeChat
ไปยังไดเร็กทอรีโปรเจ็กต์ จากนั้น require "/path/to/sdk/OAuth.php"
หากคุณใช้ Composer เพื่อติดตั้ง คุณสามารถใช้โค้ดต่อไปนี้เพื่อโหลดโดยอัตโนมัติ
require ' vendor/autoload.php ' ;
SDK ตั้งอยู่ใต้เนมสเปซส่วนกลาง
use Henter WeChat OAuth
สร้างอินสแตนซ์ OAuth
เพื่อเริ่มต้นให้เสร็จสมบูรณ์
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$appid
และ $secret
คือข้อมูลระบุตัวตนที่ไม่ซ้ำกันและคีย์ลับ AppSecret ของแอปพลิเคชันแพลตฟอร์มแบบเปิด WeChat
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ callback_url = ' http://your_site.com/your_callback_url ' ;
$ url = $ oauth -> getAuthorizeURL ( $ callback_url );
เปลี่ยนเส้นทางไปที่ $url
หลังจากที่ผู้ใช้อนุญาตให้มีการอนุญาต มันจะเปลี่ยนเส้นทางไปยัง $callback_url
พร้อม code
และพารามิเตอร์ state
(โค้ดตัวอย่างไม่ผ่านในพารามิเตอร์ state
)
ที่อยู่การอนุญาตเริ่มต้นคือการข้ามไปยังหน้ารหัส QR สแกน WeChat (ใช้ได้กับพีซี) วิธีนี้ไม่เหมาะหากผู้ใช้เข้าถึงหน้าเว็บภายใน WeChat และคลิกเข้าสู่ระบบ WeChat คุณต้องใช้วิธีการต่อไปนี้เพื่อรับที่อยู่ที่ได้รับอนุญาตสำหรับใช้ใน WeChat:
$ url = $ oauth -> getWeChatAuthorizeURL ( $ callback_url );
หมายเหตุ: สิ่งนี้ไม่ได้กล่าวถึงในเอกสารแพลตฟอร์มแบบเปิดของ WeChat (มีการกล่าวถึงในเอกสารแพลตฟอร์มบัญชีอย่างเป็นทางการเท่านั้น) แต่การทดสอบพบว่าสามารถใช้ได้กับแอปพลิเคชันแพลตฟอร์มแบบเปิดด้วย
access_token
ผ่านพารามิเตอร์ code
//获取code参数
$ code = $ _GET [ ' code ' ];
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
if ( $ access_token = $ oauth -> getAccessToken ( ' code ' , $ code )){
$ refresh_token = $ oauth -> getRefreshToken ();
$ expires_in = $ oauth -> getExpiresIn ();
$ openid = $ oauth -> getOpenid ();
} else {
echo $ oauth -> error ();
}
หากการรับสำเร็จจะต้องบันทึกค่าทั้ง 4 นี้ไว้สำหรับการเรียกอินเทอร์เฟซครั้งต่อไป มิฉะนั้นข้อมูลข้อผิดพลาดจะได้รับผ่าน $oauth->error()
access_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret , $ access_token );
หรือ
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
$ oauth -> setAccessToken ( $ access_token );
หากต้องการเรียกข้อมูลผู้ใช้ จะต้องส่ง openid
เข้าไป
$ userinfo = $ oauth -> api ( ' sns/userinfo ' , array ( ' openid ' => $ openid ));
ในนั้น sns/userinfo
คือประเภท api สำหรับรายละเอียด โปรดดูที่เอกสาร WeChat API
access_token
ผ่าน refresh_token
$ oauth = new Henter WeChat OAuth ( $ appid , $ secret );
//以下两种方式一样
$ access_token = $ oauth -> getAccessToken ( ' token ' , $ refresh_token );
或
$ access_token = $ oauth -> refreshAccessToken ( $ refresh_token );
ในขณะนี้ คุณสามารถรับ refresh_token
ใหม่ได้ทาง $oauth->getRefreshToken()
SDK นี้ไม่มีส่วนที่ทำให้เกิดข้อยกเว้น หากคืนค่า false
เมื่อเรียกใช้เมธอด เช่น $oauth->getAccessToken()
หรือ $oauth->api()
แสดงว่าได้รับข้อมูลข้อผิดพลาดผ่าน $oauth->error()
ดังนั้นจึงไม่จำเป็นต้องใช้ try {} catch {}
เพื่อจัดการกับข้อผิดพลาด
ลิขสิทธิ์ MIT (MIT) ลิขสิทธิ์ (c) 2014 Henter <[email protected]>
อนุญาตให้บุคคลใดๆ ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") โดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ 'ตามสภาพ' โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการซื้อขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใด ผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อสิ่งใดๆ การเรียกร้องค่าเสียหายหรืออื่น ๆ ความรับผิดไม่ว่าในการกระทำของสัญญา การละเมิด หรืออย่างอื่น ที่เกิดขึ้นจาก ออกจาก หรือเกี่ยวข้องกับซอฟต์แวร์ หรือการใช้งาน หรือข้อตกลงอื่น ๆ ในซอฟต์แวร์