คู่มือนี้จะอธิบายวิธีใช้หน้าต่างการอนุญาตเพื่อรับโทเค็นการเข้าถึงผู้ใช้ Instagram แบบระยะสั้น และสิทธิ์การอนุญาตจากผู้ใช้ Instagram
หน้าต่างการอนุญาตช่วยให้ผู้ใช้แอพสามารถมอบสิทธิ์การอนุญาตและโทเค็นการเข้าถึงผู้ใช้ Instagram แบบระยะสั้นให้กับแอพของคุณได้ หลังจากที่ผู้ใช้เข้าสู่ระบบและเลือกข้อมูลที่อนุญาตให้แอพของคุณเข้าถึงได้แล้ว เราจะเปลี่ยนเส้นทางผู้ใช้ไปยังแอพของคุณ พร้อมระบุรหัสการให้อนุญาต ซึ่งคุณสามารถนำไปแลกเปลี่ยนเป็นโทเค็นการเข้าถึงแบบระยะสั้นได้
หากต้องการเริ่มกระบวนการ ให้เรียกหน้าต่างการอนุญาตและแสดงต่อผู้ใช้:
https://api.instagram.com/oauth/authorize ?client_id={instagram-app-id} &redirect_uri={redirect-uri} &scope={scope} &response_type=code &state={state} //Optional
ต้องใช้พารามิเตอร์ทั้งหมดยกเว้น state
พารามิเตอร์ | ค่าตัวอย่าง | คำอธิบาย |
---|---|---|
|
| ID ของแอพ Instagram ของคุณที่แสดงในแดชบอร์ดของแอพ > สินค้า > Instagram > Basic Display |
|
| URI ที่เราจะเปลี่ยนเส้นทางผู้ใช้หลังจากผู้ใช้อนุญาตหรือปฏิเสธคำขอสิทธิ์การอนุญาต ตรวจสอบว่า URI นี้เหมือนกันกับ URI ฐานในรายการ URI oAuth ที่ถูกต้องทุกประการ โปรดจำไว้ว่าแดชบอร์ดของแอพอาจเพิ่มเครื่องหมายทับตามหลัง URI ของคุณ ดังนั้นเราจึงขอแนะนำให้คุณตรวจสอบยืนยันด้วยการตรวจสอบรายการ |
|
| กำหนดค่านี้ให้เป็น |
|
| รายการสิทธิ์การอนุญาตที่คั่นด้วยเครื่องหมายจุลภาคหรือคั่นด้วยช่องว่างที่เข้ารหัส URL เพื่อส่งคำขอจากผู้ใช้แอพ ต้องมี |
|
| ค่าทางเลือกซึ่งระบุสถานะของเฉพาะเซิร์ฟเวอร์ เช่น คุณสามารถใช้ค่านี้เพื่อป้องกันปัญหา CSRF ได้ เราจะเพิ่มพารามิเตอร์นี้และค่าเมื่อเปลี่ยนเส้นทางผู้ใช้กลับมาหาคุณ |
https://api.instagram.com/oauth/authorize ?client_id=990602627938098 &redirect_uri=https://socialsizzle.herokuapp.com/auth/ &scope=user_profile,user_media &response_type=code
หากการอนุญาตสำเร็จ เราจะเปลี่ยนเส้นทางผู้ใช้มาที่ redirect_uri
ของคุณ และส่งต่อรหัสการให้อนุญาตให้คุณผ่านพารามิเตอร์สตริงการสืบค้น code
บันทึกรหัสดังกล่าวเพื่อให้แอพของคุณแลกเปลี่ยนเป็นโทเค็นการเข้าถึงผู้ใช้ Instagram แบบระยะสั้นได้
รหัสการให้อนุญาตจะมีอายุ 1 ชั่วโมง และสามารถใช้ได้ครั้งเดียวเท่านั้น
https://socialsizzle.herokuapp.com/auth/?code=AQBx-hBsH3...#_
โปรดทราบว่าจะมีการผูก #_
ไปยังปลายทางของ URI การเปลี่ยนเส้นทาง แต่ไม่ได้เป็นส่วนหนึ่งของรหัส ดังนั้นให้ตัดออก
หากผู้ใช้ยกเลิกขั้นตอนการอนุญาต เราจะเปลี่ยนเส้นทางผู้ใช้ไปที่ redirect_uri
ของคุณและเพิ่มพารามิเตอร์ข้อผิดพลาดต่อไปนี้ หากเกิดข้อผิดพลาดในสถานการณ์เหล่านี้ คุณมีหน้าที่รับผิดชอบในการแก้ไข พร้อมแสดงข้อความที่เหมาะสมให้กับผู้ใช้ของคุณ
พารามิเตอร์ | ค่า |
---|---|
|
|
|
|
|
|
https://socialsizzle.herokuapp.com/auth/?error=access_denied &error_reason=user_denied &error_description=The+user+denied+your+request
เมื่อคุณได้รับรหัส ให้แลกเปลี่ยนรหัสเป็นโทเค็นการเข้าถึงแบบระยะสั้นโดยการส่งคำขอ POST
ไปยังตำแหน่งข้อมูลต่อไปนี้:
POST https://api.instagram.com/oauth/access_token
ให้เพิ่มพารามิเตอร์นี้ลงในเนื้อความคำขอ POST ของคุณ
พารามิเตอร์ | ค่าตัวอย่าง | คำอธิบาย |
---|---|---|
|
| ID ของแอพ Instagram ของคุณที่แสดงในแดชบอร์ดของแอพ > สินค้า > Instagram > Basic Display |
|
| ข้อมูลลับของแอพ Instagram คุณที่แสดงในแดชบอร์ดของแอพ > สินค้า > Instagram > Basic Display |
|
| รหัสการให้อนุญาตที่เราส่งต่อให้คุณในพารามิเตอร์ |
|
| กำหนดค่านี้ให้เป็น |
|
| URI การเปลี่ยนเส้นทางที่คุณส่งต่อให้เราเมื่อคุณเปลี่ยนเส้นทางผู้ใช้ไปที่หน้าต่างการอนุญาตของเรา URI นี้จะต้องเป็น URI เดียวกัน ไม่เช่นนั้นเราจะปฏิเสธคำขอ |
curl -X POST \ https://api.instagram.com/oauth/access_token \ -F client_id=990602627938098 \ -F client_secret=eb8c7... \ -F grant_type=authorization_code \ -F redirect_uri=https://socialsizzle.herokuapp.com/auth/ \ -F code=AQBx-hBsH3...
หากทำสำเร็จ API จะส่งคืนเพย์โหลด JSON ที่มีโทเค็นการเข้าถึงแบบระยะสั้นและ ID ผู้ใช้ของผู้ใช้แอพ
{ "access_token": "IGQVJ...", "user_id": 17841405793187218 }
บันทึกค่า access_token
ค่านี้เป็นโทเค็นการเข้าถึงผู้ใช้ Instagram แบบระยะสั้นของผู้ใช้ ซึ่งแอพของคุณสามารถใช้เพื่อเข้าถึงตำแหน่งข้อมูล API ของ Instagram Basic Display ได้
หากคำขอผิดปกติในลักษณะใดก็ตาม API จะส่งคืนข้อผิดพลาด
{ "error_type": "OAuthException", "code": 400, "error_message": "Matching code was not found or was already used" }