หากคุณกำลังมองหาความช่วยเหลือสำหรับ Facebook Portal โปรดไปที่ศูนย์ช่วยเหลือ Portal
หากต้องการป้อนโค้ด Facebook สำหรับอุปกรณ์เพื่อเข้าสู่ระบบสมาร์ททีวี กล้อง เครื่องพิมพ์ และอุปกรณ์อื่นๆ โปรดไปที่หน้า Facebook สำหรับอุปกรณ์
การใช้การเข้าสู่ระบบ Facebook สำหรับอุปกรณ์เพื่อช่วยให้ผู้ใช้เข้าสู่ระบบแอพหรือบริการของคุณด้วยบัญชี Facebook ของตนเอง โดยคุณสมบัตินี้จะช่วยให้ผู้ใช้เข้าสู่ระบบอุปกรณ์ที่มีความสามารถในการกรอกข้อมูลหรือแสดงผลแบบจำกัด เช่น สมาร์ททีวี กรอบรูปดิจิทัล หรืออุปกรณ์ทุกชนิดที่มีการเชื่อมต่ออินเทอร์เน็ต
เมื่อเข้าสู่ระบบอุปกรณ์แล้ว อุปกรณ์ของคุณจะแสดงโค้ดเป็นตัวอักษรและตัวเลข และแจ้งให้ผู้ใช้ป้อนโค้ดบนเว็บเพจบนคอมพิวเตอร์เดสก์ท็อปหรือสมาร์ทโฟน จากนั้นผู้ที่ใช้แอพหรือบริการสามารถให้สิทธิ์การอนุญาตได้ หลังจากแอพพลิเคชั่นของคุณได้รับสิทธิ์การอนุญาตแล้ว อุปกรณ์จะได้รับโทเค็นการเข้าถึงที่แอพใช้สร้างคำขอ API กราฟเพื่อระบุตัวตนบุคคลและรับข้อมูลเพื่อนำมาใช้ปรับประสบการณ์ที่ได้รับจากอุปกรณ์ให้เป็นส่วนบุคคล
หากคุณกำลังสร้างแอพ TV สำหรับ Apple TV หรือ Android TV หรือ Fire TV คุณควรใช้ Facebook SDK สำหรับ tvOS หรือ Facebook SDK สำหรับ Android
คู่มือนี้จะอธิบายถึงการผสานการทำงานด้วยตัวเองในส่วนของการเข้าสู่ระบบอุปกรณ์ โดยไม่ต้องใช้ SDK ข้างต้น
แนวทางนี้อธิบายวิธีออกแบบประสบการณ์การเข้าสู่ระบบที่ชัดเจน ปลอดภัย และสอดคล้องกันระหว่างอุปกรณ์และการบริการต่างๆ
ก่อนอื่น ให้พิจารณาว่าคุณต้องการขอให้ผู้ใช้เข้าสู่ระบบหรือเชื่อมต่อกับ Facebook ในส่วนใดของประสบการณ์ผู้ใช้ อุปกรณ์บางอย่างจะแสดงการเข้าสู่ระบบทันที ส่วนบางอุปกรณ์อาจแสดงในภายหลัง
หากต้องการให้ประสบการณ์ผู้ใช้สามารถใช้ได้ดี สอดคล้อง และเชื่อถือได้มากที่สุด ให้ออกแบบปุ่มให้ดูเหมือนปุ่มเข้าสู่ระบบด้วย Facebook อย่างเป็นทางการมากที่สุด
หากมองในแง่มุมการออกแบบภาพ นั่นหมายความว่าคุณควร
อธิบายถึงข้อดีของการเข้าสู่ระบบในจุดที่เกี่ยวข้อง ตัวอย่างเช่น "ดูว่าเพื่อนของคุณดูอะไรอยู่" หรือ "ดูภาพถ่ายจากอัลบั้ม Facebook ของคุณ"
เมื่อผู้ใช้คลิกปุ่มกระตุ้นให้ดำเนินการ อุปกรณ์ของคุณจะเรียก API ของ Facebook ซึ่งส่งโค้ดกลับมา
ในอินเทอร์เฟซ ให้แจ้งผู้ใช้ว่าต้องไปที่เว็บไซต์และกรอกโค้ดด้วยข้อความนี้ “ขั้นต่อไป ให้ไปที่ facebook.com/device (http://facebook.com/device) บนเดสก์ท็อปหรือสมาร์ทโฟน แล้วกรอกโค้ดนี้" แสดงโค้ดทั้งหมดที่คุณได้รับจาก API การเข้าสู่ระบบบนอุปกรณ์ของ Facebook โค้ดนี้จะมีความยาวอักขระ 6-12 ตัว
คุณสามารถใส่ปุ่ม Close
หรือ Cancel
เพื่อให้ผู้ใช้ยกเลิกลำดับขั้นตอนการเข้าสู่ระบบบนอุปกรณ์ ซึ่งผู้ใช้จะกลับไปที่หน้าจอแรกสำหรับการเข้าสู่ระบบ
เมื่อโค้ดแสดงบนหน้าจอ อุปกรณ์จะตรวจสอบสถานะ API การเข้าสู่ระบบบนอุปกรณ์เพื่อดูว่ามีใครอนุญาตแอพพลิเคชั่นของคุณบ้าง หลังจากนั้นไม่กี่นาที API การเข้าสู่ระบบบนอุปกรณ์จะแสดงข้อผิดพลาด code_expired
หากผู้ใช้ยังไม่ใส่โค้ดของตน เมื่ออุปกรณ์ของคุณได้รับข้อผิดพลาดนี้ คุณควรยกเลิกลำดับขั้นตอนการเข้าสู่ระบบ และอินเทอร์เฟซควรแสดงการกระตุ้นให้ดำเนินการ
ระบบอาจสร้างโค้ด QR พร้อมกับโค้ดผู้ใช้ที่ฝังอยู่ใน URL ซึ่งสามารถทำได้โดยการเพิ่มพารามิเตอร์ user_code
ลงใน URL:
https://www.facebook.com/device?user_code=<USER_CODE>
โฟลว์นี้คือโฟลว์ที่ผู้ใช้เห็นเมื่อไปที่ facebook.com/device จากเบราว์เซอร์บนเดสก์ท็อปหรือมือถือ ในขั้นแรก ผู้ใช้จะเห็นฟิลด์สำหรับข้อความที่สามารถกรอกโค้ดของตน
หลังจากผู้ใช้กรอกโค้ดและคลิก Continue
ก็จะสามารถเลือกสิทธิ์การอนุญาตที่ต้องการให้ดังนี้
ผู้ใช้จะทราบว่าลำดับขั้นตอนการเข้าสู่ระบบเสร็จสิ้น เมื่อเห็นข้อความยืนยัน
คุณควรแสดงข้อความยืนยันบนอินเทอร์เฟซของอุปกรณ์ ทางที่ดีต้องมีชื่อและรูปโปรไฟล์ Facebook ของบุคคลนั้นๆ ด้วย
แสดงข้อมูลยืนยันนี้บนอุปกรณ์จนกว่าผู้ใช้จะคลิกปุ่ม Continue
ผู้ใช้อาจต้องกรอกโค้ดในคอมพิวเตอร์ที่อื่น จึงอาจต้องการเวลาเพิ่มเติมก่อนจะกลับไปยังอุปกรณ์ของคุณและเห็นการยืนยันก่อนดำเนินการต่อ
หลังจากที่ผู้ใช้คลิก Continue
อุปกรณ์ของคุณจะแสดงประสบการณ์ที่ดีที่ปรับให้เป็นส่วนบุคคลแก่ผู้ใช้
ผู้ใช้ควรสามารถออกจากระบบอุปกรณ์ของคุณ และอุปกรณ์ไม่ควรเก็บการเชื่อมต่อกับ Facebook หากต้องการดำเนินการดังกล่าว โปรดให้ตัวเลือก Log out from Facebook
หรือ Disconnect from Facebook
ในเมนูของอุปกรณ์ของคุณ
เมื่อผู้ใช้เลือกตัวเลือกนี้ อุปกรณ์ควรลบโทเค็นการเข้าถึงที่เก็บออกจากหน่วยความจำ หากเก็บโทเค็นการเข้าถึงในฐานข้อมูลหรือพื้นที่เก็บข้อมูลในคลาวด์ คุณก็สามารถลบที่นั่นได้ คุณไม่จำเป็นต้องเรียก API เพื่อเลิกใช้งานโทเค็นการเข้าถึง
หลังจากที่ผู้ใช้ออกจากระบบ อุปกรณ์ควรแสดงปุ่มกระตุ้นให้ดำเนินการขั้นแรกในขั้นตอนที่ 1
การเข้าสู่ระบบ Facebook สำหรับอุปกรณ์นั้นใช้กับอุปกรณ์ที่เรียก HTTP โดยตรงทางอินเทอร์เน็ต การเรียก API และการตอบสนองต่อไปนี้เป็นสิ่งที่อุปกรณ์สามารถทำได้
โหลด “แดชบอร์ดของแอพ” และเปลี่ยน “ผลิตภัณฑ์” > “การเข้าสู่ระบบ Facebook” > “การตั้งค่า” > “เข้าสู่ระบบจากอุปกรณ์” ให้เป็น "ใช่"
เมื่อผู้ใช้คลิกการกระตุ้นให้ดำเนินการ Connect to Facebook
หรือ Log in with Facebook
อุปกรณ์ควรทำ HTTP POST เป็น:
POST https://graph.facebook.com/v2.6/device/login access_token=<YOUR_APP_ID|CLIENT_TOKEN> scope=<COMMA_SEPARATED_PERMISSION_NAMES> // e.g. public_profile,user_likes redirect_uri=<VALID_OAUTH_REDIRECT_URL>
พารามิเตอร์ scope
เป็นตัวเลือก และต้องประกอบด้วยรายการสิทธิ์การอนุญาตเข้าสู่ระบบ ซึ่งมีจุลภาคคั่นและได้รับอนุมัติให้ใช้ในการตรวจสอบการเข้าสู่ระบบ
คุณจะพบ CLIENT_TOKEN
ในการตั้งค่าแอพ -> ขั้นสูง และควรรวมกับ ID ของแอพของคุณ (คั่นด้วยเครื่องหมาย Pipe |
) เพื่อทำให้เกิด access_token
ที่สมบูรณ์
redirect_uri
เป็นพารามิเตอร์ที่ไม่บังคับ เมื่อคุณให้ URL ผู้ใช้จะถูกเปลี่ยนเส้นทางไปยัง URL ดังกล่าวหลังจากที่เข้าสู่ระบบเรียบร้อยแล้ว ซึ่งทำให้คุณสามารถนำผู้ใช้ดังกล่าวเข้าสู่ระบบไปยังเว็บไซต์ของแอพของคุณเพื่อจัดการบัญชีผู้ใช้เพิ่มเติม URL นี้จะต้องมี URL นำทาง OAuth ที่ถูกต้องตามที่กำหนดค่าไว้ในการตั้งค่าแอพ -> ขั้นสูง การตอบสนองจะอยู่ในรูปแบบนี้:
{ "code": "92a2b2e351f2b0b3503b2de251132f47", "user_code": "A1NWZ9", "verification_uri": "https://www.facebook.com/device", "expires_in": 420, "interval": 5 }
การตอบสนองนี้หมายถึง:
อุปกรณ์ควรแสดง user_code
และแจ้งให้ผู้ใช้ไปที่ verification_uri
เช่น facebook.com/device บนเดสก์ท็อปหรือสมาร์ทโฟน ดู "ประสบการณ์ผู้ใช้"
อุปกรณ์ของคุณควรตรวจสอบสถานะ API การเข้าสู่ระบบบนอุปกรณ์เพื่อดูว่าการอนุญาตแอพของคุณสำเร็จหรือไม่ คุณควรดำเนินการนี้ในช่วง interval
ในการตอบสนองการเรียกใน "ขั้นตอนที่ 1" ซึ่งเป็นช่วงทุก 5 วินาที อุปกรณ์ควรตรวจสอบสถานะกับ:
POST https://graph.facebook.com/v2.6/device/login_status access_token=<YOUR_APP_ID|CLIENT_TOKEN> code=<LONG_CODE_FROM_STEP_1> // e.g. "92a2b2e351f2b0b3503b2de251132f47"
การตอบสนองต่อการเรียก API นี้ขึ้นอยู่กับว่าผู้ใช้อยู่ในขั้นตอนการอนุญาตใด คุณจะได้รับโทเค็นการเข้าถึงหรืออ็อบเจ็กต์ข้อผิดพลาดที่มีโค้ดย่อยที่จะแยกวิเคราะห์ ดังนี้
โค้ดย่อยข้อผิดพลาด | ตัวอย่างการตอบสนอง | ความหมาย |
---|---|---|
|
| ผู้ใช้อนุญาตอุปกรณ์ได้สำเร็จ ขณะนี้อุปกรณ์สามารถใช้ค่า |
|
| ผู้ใช้ยังไม่ได้อนุญาตแอพพลิเคชั่นของคุณ ตรวจสอบสถานะต่อไปตามอัตราที่ระบุในการตอบสนองใน ขั้นตอนที่ 1 |
|
| อุปกรณ์ตรวจสอบสถานะบ่อยเกินไป ชะลอการตรวจสอบสถานะให้อยู่ในช่วงเวลาที่ระบุในการเรียก API แรก |
|
| โค้ดอุปกรณ์หมดอายุแล้ว ยกเลิกลำดับขั้นตอนการเข้าสู่ระบบของอุปกรณ์ และส่งผู้ใช้กลับไปยังหน้าจอแรก |
เมื่อคุณได้รับโทเค็นการเข้าถึง แสดงว่าผู้ใช้อนุญาตแอพพลิเคชั่นเรียบร้อยแล้ว คุณควรยังคงใช้โทเค็นการเข้าถึงนี้ต่อไปบนอุปกรณ์
เพื่อให้ผู้ใช้ทราบว่าลำดับขั้นตอนการเข้าสู่ระบบสำเร็จ อุปกรณ์ของคุณควรแสดงชื่อผู้ใช้และรูปโปรไฟล์ (หากเป็นไปได้) จนกว่าผู้ใช้จะคลิก Continue
เมื่อต้องการรับชื่อและรูปโปรไฟล์ของผู้ใช้ ควรใช้อุปกรณ์ของคุณเรียก API กราฟมาตรฐาน:
GET https://graph.facebook.com/v2.3/me? fields=name,picture& access_token=<USER_ACCESS_TOKEN>
คุณจะได้รับการตอบสนองในรูปแบบนี้:
{ "name": "John Doe", "picture": { "data": { "is_silhouette": false, "url": "https://fbcdn.akamaihd.net/hmac...ile.jpg" } }, "id": "2023462875238472" }
แสดงชื่อและรูปโปรไฟล์ของผู้ใช้ จนกว่าผู้ใช้จะคลิก Continue
บนอุปกรณ์
อุปกรณ์ควรยังคงใช้โทเค็นการเข้าถึงต่อไปเพื่อสร้างคำขออื่นไปยัง API กราฟ
โทเค็นการเข้าถึงการเข้าสู่ระบบบนอุปกรณ์จะใช้งานได้ไม่เกิน 60 วัน แต่อาจเลิกใช้งานในบางกรณี เช่น เมื่อผู้ใช้เปลี่ยนรหัสผ่าน Facebook ก็จะทำให้โทเค็นการเข้าถึงใช้งานไม่ได้
หากโทเค็นใช้งานไม่ได้ อุปกรณ์ของคุณควรลบโทเค็นดังกล่าวออกจากหน่วยความจำ ผู้ที่ใช้อุปกรณ์ควรทำลำดับขั้นตอนการเข้าสู่ระบบบนอุปกรณ์อีกครั้งจากขั้นตอนที่ 1 เพื่อรับโทเค็นใหม่ที่ใช้งานได้
ฉันจะสร้างคำขอโฟลว์บนอุปกรณ์ทาง HTTP ได้หรือไม่
OAuth 2 ต้องใช้ TLS/HTTPS
ฉันจะสร้างคำขอโฟลว์บนอุปกรณ์ด้วยเมธอด GET ได้หรือไม่
คำขอโฟลว์บนอุปกรณ์ทั้งหมดควรเป็นคำขอ POST
ฉันจะรีเฟรชโทเค็นการเข้าถึงการเข้าสู่ระบบอุปกรณ์ได้หรือไม่
โทเค็นการเข้าถึงการเข้าสู่ระบบบนอุปกรณ์อาจใช้งานได้ไม่เกิน 60 วัน
หากโทเค็นใช้งานไม่ได้ อุปกรณ์ของคุณควรลบโทเค็นดังกล่าวออกจากหน่วยความจำ ผู้ที่ใช้อุปกรณ์ควรทำลำดับขั้นตอนการเข้าสู่ระบบบนอุปกรณ์อีกครั้งตามที่ระบุในขั้นตอนที่ 1 เพื่อรับโทเค็นใหม่ที่ใช้งานได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรีเฟรชโทเค็นได้ใน "โทเค็นการเข้าถึง"
ฉันได้รับข้อผิดพลาด Invalid API method
เมื่อสร้างคำขอ POST เป็นเพราะเหตุใด
หากคุณสร้างคำขอ POST และได้รับข้อผิดพลาดลักษณะนี้:
{"error":{"message":"Invalid API method","type":"OAuthException","code":3}}
คุณอาจต้องเปิดใช้งานการเข้าสู่ระบบจากอุปกรณ์ในแอพของคุณ
โหลด “แดชบอร์ดของแอพ” และตั้งค่า “ผลิตภัณฑ์” > “การเข้าสู่ระบบ Facebook” > “การตั้งค่า” > “เข้าสู่ระบบจากอุปกรณ์” ให้เป็น "ใช่"
โทเค็นการเข้าถึงการเข้าสู่ระบบบนอุปกรณ์ของฉันไม่ถูกต้อง ฉันควรทำอย่างไร
หากโทเค็นการเข้าถึงของคุณใช้งานไม่ได้ อุปกรณ์ของคุณควรลบโทเค็นดังกล่าวออกจากหน่วยความจำ แล้วรับโทเค็นใหม่ ผู้ที่ใช้อุปกรณ์ควรทำลำดับขั้นตอนการเข้าสู่ระบบบนอุปกรณ์อีกครั้งตามที่ระบุในขั้นตอนที่ 1 เพื่อรับโทเค็นใหม่ที่ใช้งานได้