ผู้ใช้ตามค่าเริ่มต้นและโทเค็นการเข้าถึงเพจเป็นแบบใช้งานได้ระยะสั้น โดยจะหมดอายุภายในไม่กี่ชั่วโมง อย่างไรก็ตาม คุณสามารถเปลี่ยนโทเค็นแบบใช้งานระยะสั้นเป็นโทเค็นแบบใช้งานระยะยาวได้
เมื่อคุณใช้ SDK บน iOS, Android หรือ JavaScript ตัว SDK จะรีเฟรชโทเค็นโดยอัตโนมัติหากมีผู้ใช้แอพของคุณภายใน 90 วันที่ผ่านมา แอพมือถือแบบเนทีฟที่ใช้ SDK ของ Facebook จะได้รับโทเค็นการเข้าถึงผู้ใช้แบบใช้งานระยะยาว ซึ่งเหมาะสำหรับการใช้งานประมาณ 60 วัน โทเค็นเหล่านี้จะรีเฟรชวันละครั้ง เมื่อผู้ที่ใช้แอพของคุณส่งคำขอไปยังเซิร์ฟเวอร์ของ Facebook หากไม่มีการส่งคำขอ โทเค็นจะหมดอายุหลังจากผ่านไปประมาณ 60 วัน และผู้ใช้จะต้องดำเนินการตามขั้นตอนการเข้าสู่ระบบอีกครั้งเพื่อรับโทเค็นใหม่
เวอร์ชั่นล่าสุดของ API กราฟ: v21.0
หากคุณต้องการโทเค็นการเข้าถึงผู้ใช้แบบใช้งานระยะยาว คุณสามารถสร้างโทเค็นดังกล่าวขึ้นจากโทเค็นการเข้าถึงผู้ใช้แบบใช้งานระยะสั้นได้ ทั้งนี้โทเค็นแบบใช้งานระยะยาวมักมีอายุการใช้งานประมาณ 60 วัน
คุณจำเป็นต้องมีสิ่งต่อไปนี้
สืบค้นตำแหน่งข้อมูล GET oauth/access_token
curl -i -X GET "https://graph.facebook.com/{graph-api-version}/oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={your-access-token}"
{ "access_token":"{long-lived-user-access-token}", "token_type": "bearer", "expires_in": 5183944 //The number of seconds until the token expires }
ขั้นตอนการทำงานในการสร้างโทเค็นการเข้าถึงผู้ใช้แบบใช้งานระยะยาวมีดังนี้
หลังจากเรียกใช้โทเค็นแบบใช้งานระยะยาวแล้ว คุณสามารถใช้โทเค็นนั้นได้จากเซิร์ฟเวอร์ของคุณหรือส่งโทเค็นไปที่ไคลเอ็นต์เพื่อนำไปใช้ที่นั่น
คุณไม่สามารถใช้โทเค็นที่หมดอายุแล้วเพื่อขอโทเค็นแบบใช้งานระยะยาวได้ หากโทเค็นหมดอายุแล้ว แอพของคุณต้องส่งผู้ใช้เข้าสู่ขั้นตอนการเข้าสู่ระบบอีกครั้งเพื่อสร้างโทเค็นการเข้าถึงแบบใช้งานระยะสั้นใหม่ซ้ำ
ทำการเรียกใช้นี้จากเซิร์ฟเวอร์ของคุณ ไม่ใช่จากไคลเอ็นต์ ข้อมูลลับของแอพของคุณจะรวมอยู่ในการเรียก API นี้ คุณจึงไม่ควรส่งคำขอจากฝั่งไคลเอ็นต์ แต่ให้ใช้โค้ดจากฝั่งเซิร์ฟเวอร์เพื่อสร้างคำขอนั้น จากนั้นส่งการตอบสนองที่มีโทเค็นแบบใช้งานระยะยาวกลับมาไปที่รหัสฝั่งไคลเอ็นต์ สตริงนี้จะต่างจากโทเค็นดั้งเดิม หากคุณจัดเก็บโทเค็นเหล่านี้อยู่ ให้ใช้แทนที่โทเค็นเก่า
อย่าใช้โทเค็นแบบใช้งานระยะยาวเดียวกันกับไคลเอ็นต์สำหรับเว็บมากกว่า 1 รายการ (กล่าวคือ กรณีที่ผู้ใช้เข้าสู่ระบบจากคอมพิวเตอร์มากกว่า 1 เครื่อง) แต่ควรใช้โทเค็นแบบใช้งานระยะยาวบนเซิร์ฟเวอร์เพื่อสร้างรหัสแทน จากนั้นใช้โทเค็นนั้นเพื่อรับโทเค็นแบบใช้งานระยะยาวบนไคลเอ็นต์ โปรดดูข้อมูลเกี่ยวกับการสร้างโทเค็นแบบใช้งานระยะยาวจากโทเค็นแบบใช้งานระยะยาวในฝั่งเซิร์ฟเวอร์ที่ด้านล่าง
หากคุณต้องการโทเค็นการเข้าถึงเพจแบบใช้งานระยะยาว คุณสามารถสร้างโทเค็นดังกล่าวจากโทเค็นการเข้าถึงผู้ใช้แบบใช้งานระยะยาวได้ โทเค็นการเข้าถึงเพจแบบใช้งานระยะยาวจะไม่มีวันหมดอายุ และจะหมดอายุหรือใช้งานไม่ได้ภายใต้เงื่อนไขบางประการเท่านั้น
คุณจำเป็นต้องมีสิ่งต่อไปนี้
สืบค้นตำแหน่งข้อมูล GET {app-scoped-user-id}?accounts
curl -i -X GET "https://graph.facebook.com/{graph-api-version}/{app-scoped-user-id}/accounts? access_token={long-lived-user-access-token}"
{ "data":[ { "access_token":"{long-lived-page-access-token}", "category":"Brand", "category_list":[ { "id":"1605186416478696", "name":"Brand" } ], "name":"Cute Kitten Page", "id":"{page-id}", "tasks":[ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] } ], "paging":{ "cursors":{ "before":"MTM1MzI2OTg2NDcyODg3OQZDZD", "after":"MTM1MzI2OTg2NDcyODg3OQZDZD" } } }
Facebook มีตัวเลือกในการรับโทเค็นการเข้าถึงแบบใช้งานระยะยาวสำหรับแอพเพื่อหลีกเลี่ยงการทริกเกอร์ระบบสแปมแบบอัตโนมัติของ Facebook แอพที่มีลักษณะดังนี้
คุณรับโทเค็นแบบใช้งานระยะยาวสำหรับไคลเอ็นต์ในระดับสูงโดยวิธีนี้:
สืบค้นตำแหน่งข้อมูล GET oauth/client_code
URI การเปลี่ยนเส้นทางจะต้องเป็นค่าที่แน่นอนซึ่งคุณได้กำหนดไว้ในแดชบอร์ดของแอพใต้การ์ดการเข้าสู่ระบบด้วย Facebook > ไคลเอ็นต์การตั้งค่า > การตั้งค่า OAuth
curl -i -X GET "https://graph.facebook.com/{graph-api-version}/oauth/client_code? client_id={app-id}& client_secret={app-secret}& redirect_uri={app-redirect-uri}& access_token={long-lived-user-access-token}"
{ "code":"{code-for-your-client}" }
หลังจากดึงรหัสมาจากเซิร์ฟเวอร์ของ Facebook แล้ว คุณต้องส่งรหัสไปยังไคลเอ็นต์ผ่านช่องทางที่ปลอดภัย เมื่อดำเนินการดังกล่าวเสร็จสิ้นแล้ว คุณจำเป็นต้องส่งคำขอจากไคลเอ็นต์ไปยังตำแหน่งข้อมูล /oauth/access_token
curl -i -X GET "https://graph.facebook.com/{graph-api-version}/oauth/access_token? code={code-for-your-client}& client_id={app-id}& redirect_uri={app-redirect-uri}& machine_id= {your-client-machine-id}"
machine_id
เป็นพารามิเตอร์ที่คุณจะระบุหรือไม่ก็ได้ ซึ่งจะบ่งบอกและติดตามไคลเอ็นต์ รวมถึงใช้ในการรักษาความปลอดภัยและป้องกันสแปม โดยค่าจะเป็นแบบต่อไคลเอ็นต์ ไม่ใช่ต่อผู้ใช้ หากคุณได้ทำการเรียกใช้เพื่อรับรหัสไปก่อนหน้านี้และได้รับ machine_id
คุณควรใส่เอาไว้ในคำขอรหัสของคุณ
{ "access_token":"{long-lived-access-token}", "expires_in":5183944, //The number of seconds until the token expires "machine_id":"{your-client-machine-id}" }
ขั้นตอนการทำงานในการสร้างโทเค็นแบบใช้งานระยะยาวมีดังนี้