ไปทีละขั้นตอนที่นี่ ดูเหมือนว่าคุณกำลังพยายามใช้ OAuth สำหรับการตรวจสอบสิทธิ์แต่ก่อนที่คุณจะสามารถทำได้คุณจะต้องได้รับ Access Tokenซึ่งจะใช้ในการตรวจสอบสิทธิ์เมื่อคุณทำการโทร API
เนื่องจากสิ่งนี้ใช้ OAuth รุ่น 1 เพื่อรับโทเค็นการเข้าถึงคุณต้องทำสิ่งต่อไปนี้:
- ขั้นแรกตั้งค่าแอปพลิเคชันโทรไปที่ไซต์เพื่อขอรับโทเค็นคำขอ (ข้อมูลรับรองชั่วคราว) โดยใช้รหัสลูกค้าและข้อมูลลับสำหรับแอปพลิเคชัน
- ขั้นที่สองทำการโทรไปยังไซต์เพื่อให้อนุญาตแอปพลิเคชันด้วยRequest Tokenจากขั้นตอนแรก (เข้าหาผู้ใช้ดูด้านล่าง)
- ประการที่สามหลังจากการอนุญาตเสร็จสมบูรณ์คุณจึงโทรไปที่ไซต์เพื่อรับโทเค็นการเข้าถึง (ตอนนี้แอปพลิเคชันนั้นได้รับอนุญาต)
ฉันแนะนำให้ใช้บุรุษไปรษณีย์สำหรับสองสามขั้นตอนแรกเพราะพวกเขาจะต้องเสร็จสิ้นเพียงครั้งเดียว บุรุษไปรษณีย์ก็จะจัดการกับการสร้างtimestamp
, nonce
และoauth signature
ดังนั้นหากคุณไม่ได้ใช้ห้องสมุด OAuth แล้วคุณแน่นอนควรใช้บุรุษไปรษณีย์ เมื่อคุณมีโทเค็นการเข้าถึงของคุณคุณสามารถโทรผ่าน CURL โดยไม่ต้องมีห้องสมุดใด ๆ
https://www.getpostman.com/
ขั้นตอนแรก (แอปพลิเคชันตั้งค่า)
ติดตั้ง WP OAuth 1 ปลั๊กอินเปิดใช้งานแล้วไปที่เมนูรายการภายใต้ผู้ใช้> การประยุกต์ใช้งาน เพิ่มแอปพลิเคชันใหม่กรอกชื่อและคำอธิบาย สำหรับการเรียกกลับทั้ง URL เพื่อเปลี่ยนเส้นทางผู้ใช้ไปยัง (หลังจากการอนุญาต) หรือoop
สำหรับการไหลออกนอกวงซึ่งจะเปลี่ยนเส้นทางไปยังหน้าภายในซึ่งแสดงโทเค็นของตัวตรวจสอบ (แทนการเปลี่ยนเส้นทาง)
https://github.com/WP-API/OAuth1/blob/master/docs/basics/Registering.md
ในการไปยังขั้นตอนที่สองคุณจำเป็นต้องโทรไปยังไซต์ของคุณโดยใช้ID ลูกค้าและความลับลูกค้าจากแอปพลิเคชันที่สร้างขึ้นเพื่อรับข้อมูลรับรองชั่วคราว (โทเค็นคำขอ)
เปิดบุรุษไปรษณีย์สร้างการโทรใหม่http://website.com/oauth1/request
คลิกที่แท็บการอนุญาตเลือก OAuth 1.0 จากดรอปดาวน์ใส่ในรหัสลูกค้า, ความลับลูกค้า, ตั้งค่าวิธีการลงนามHMAC-SHA1
, เปิดใช้งานเพิ่ม params ไปที่ส่วนหัว, เข้ารหัสลายเซ็น oauthจากนั้นคลิกร้องขอคำขอ
บุรุษไปรษณีย์จะสร้างลายเซ็นไม่ใช่และเวลาให้คุณโดยอัตโนมัติและเพิ่มลงในส่วนหัว (คุณสามารถดูได้ภายใต้แท็บส่วนหัว)
คลิกส่งและคุณควรได้รับคำตอบที่ประกอบด้วยoauth_token
และoauth_token_secret
:
ค่าเหล่านี้จะถูกใช้ในขั้นตอนถัดไปเพื่อให้สิทธิ์แอปพลิเคชันภายใต้บัญชีผู้ใช้ WordPress ของคุณ
ขั้นตอนที่สอง (อนุญาตแอปพลิเคชัน)
ขั้นตอนการอนุมัติจะต้องดำเนินการเพียงครั้งเดียวขั้นตอนนี้คือการเข้าถึงผู้ใช้และเป็นขั้นตอนที่ทุกคนคุ้นเคย ขั้นตอนนี้จำเป็นเนื่องจากคุณใช้ OAuth1 และแอปพลิเคชันจะต้องเชื่อมโยงกับบัญชีผู้ใช้ WordPress ลองคิดดูว่าเมื่อใดที่เว็บไซต์อนุญาตให้คุณเข้าสู่ระบบด้วย Facebook ... พวกเขาจะพาคุณไปยัง Facebook ที่คุณเข้าสู่ระบบและคลิก "อนุญาต" ... สิ่งนี้จะต้องทำผ่านเว็บไซต์ WordPress ของคุณ
ฉันขอแนะนำให้ใช้เว็บเบราว์เซอร์ของคุณในขั้นตอนนี้เนื่องจากคุณสามารถตั้งค่าตัวแปรใน URL ได้อย่างง่ายดายและสิ่งนี้จะให้หน้า "อนุญาต" เพื่ออนุญาตแอปพลิเคชัน
เปิดเว็บเบราว์เซอร์ของคุณและพิมพ์ URL ไปยังเว็บไซต์ของคุณเช่นนี้:
http://website.com/oauth1/authorize
ตอนนี้เพิ่มไปยัง URL นี้oauth_consumer_key
(รหัสลูกค้า) oauth_token
และoauth_token_secret
(จากขั้นตอนก่อนหน้า) ในตัวอย่างของฉันนี่คือ URL เต็ม:
http://website.com/oauth1/authorize?oauth_consumer_key=TUPFNj1ZTd8u&oauth_token=J98cN81p01aqSdFd9rjkHZWI&oauth_token_secret=RkrMhw8YzXQljyh99BrNHmP7phryUvZgVObpmJtos3QExG1O
เมื่อคุณคลิกที่อนุญาตคุณจะได้รับหน้าจออื่นพร้อมกับโทเค็นการตรวจสอบ ในตัวอย่างของฉันนี่คือโทเค็นการยืนยันที่ส่งคืนE0JnxjjYxc32fMr2AF0uWsZm
ขั้นตอนที่สาม (รับโทเค็นการเข้าถึง)
ตอนนี้เราได้อนุญาตแอปพลิเคชันแล้วเราต้องทำการโทรครั้งสุดท้ายเพื่อรับการอนุญาต Token ซึ่งจะใช้ในการโทร API ทั้งหมดของคุณ เช่นเดียวกับขั้นตอนแรกที่ฉันจะใช้บุรุษไปรษณีย์ (เพราะต้องมีลายเซ็นเป็น HMAC-SHA1) และทำให้ง่ายขึ้น 100 เท่าในการทำตามขั้นตอนเหล่านี้
เปิดบุรุษไปรษณีย์อีกครั้งและเปลี่ยน URL เป็น http://website.com/oauth1/access
ตรวจสอบให้แน่ใจว่าได้เพิ่มโทเค็นและโทเค็นลับ (ค่าจากขั้นตอนแรก) จากนั้นคลิกที่Paramsเพื่อแสดงกล่องด้านล่าง URL ในประเภทด้านซ้ายในoauth_verifierและทางด้านขวาให้ป้อนรหัสจากขั้นตอนที่สองโทเค็นการตรวจสอบ
ตรวจสอบให้แน่ใจว่าได้คลิกคำขออัปเดตจากนั้นคลิกส่งและคุณควรได้รับการตอบกลับด้วยoauth_token
และoauth_token_secret
... นี่คือสิ่งที่คุณต้องการสำหรับการโทร API ด้วย! ละทิ้งต้นฉบับดั้งเดิมจากขั้นตอนที่ 1 บันทึกสิ่งเหล่านี้ในรหัสของคุณหรือที่อื่นที่ปลอดภัย
จากนั้นคุณสามารถทำการเรียก API ไปยังเว็บไซต์ของคุณตั้งค่าส่วนหัวด้วยโทเค็นที่ส่งคืนและความลับของโทเค็น
คุณสามารถส่งหลายวิธีนี้ผ่านส่วนหัวการอนุญาตในพารามิเตอร์ GET หรือ POST (หากเข้ารหัสเป็นแอปพลิเคชัน / x-www-form-urlencoded) โปรดทราบว่าคุณต้องผ่านลายเซ็นเวลาและ nonce ฉันไม่ทราบว่าการตอบกลับนี้จะใช้เวลานานแค่ไหนดังนั้นฉันจะอัปเดตในวันพรุ่งนี้พร้อมตัวอย่างในการทำเช่นนั้นด้วยรหัสของคุณ
ฉันขอแนะนำอย่างยิ่งให้ติดตั้งบันทึก Rest API เพื่อให้คุณสามารถดูบันทึกการโทร API และดูสิ่งที่ถูกส่งกลับมา ฯลฯ ซึ่งจะช่วยในการแก้ไขข้อบกพร่องอย่างมากมาย
https://github.com/petenelson/wp-rest-api-log