การลิงก์บัญชี

การลิงก์บัญชีเป็นขั้นตอนที่แยกออกมาจากฟีเจอร์ตัวแสดงหน้าเว็บอื่นๆ ที่มีให้ใช้งานในแพลตฟอร์ม Messenger คุณสามารถเริ่มขั้นตอนนี้ได้ผ่านปุ่มเข้าสู่ระบบเท่านั้น โดยไม่สามารถเริ่มจากเมนูถาวรของบอท จากปุ่ม URL หรือจากภายในขั้นตอนของตัวแสดงหน้าเว็บหรือปลั๊กอินแชทที่เปิดอยู่แล้ว

ปัจจุบัน ผู้พัฒนาที่ใช้งานฟีเจอร์เหล่านี้สามารถรับ ID ของผู้ใช้ด้วยวิธีการที่ปลอดภัยโดยใช้ฟังก์ชั่น getContext() ในส่วนขยายของ Messenger จากนั้นบอทก็จะสามารถใช้ ID ดังกล่าวเพื่อลิงก์บัญชีหรือปรับแต่งประสบการณ์ให้เหมาะกับผู้ใช้ได้

ขณะนี้ระบบรองรับเฉพาะการลิงก์บัญชีในแอพ Messenger บน iOS และ Android เท่านั้น

เมื่อผู้ใช้เริ่มการสนทนากับธุรกิจของคุณ คุณอาจต้องการระบุว่าผู้ใช้ดังกล่าวเป็นลูกค้าที่มีบัญชีกับธุรกิจของคุณอยู่แล้ว เพื่อช่วยคุณดำเนินการนี้ เราจึงได้สร้างโปรโตคอลที่ปลอดภัยในการลิงก์และยกเลิกการลิงก์ข้อมูลระบุตัวตนของผู้ใช้ Messenger กับข้อมูลระบุตัวตนของผู้ใช้ในธุรกิจของคุณขึ้นมา

การลิงก์บัญชีช่วยให้คุณสามารถเชิญผู้ใช้ให้เข้าสู่ระบบโดยใช้ขั้นตอนการยืนยันตัวตนของคุณเอง และรับ ID ในเพจ (PSID) บน Messenger เมื่อผู้ใช้เข้าสู่ระบบเรียบร้อยแล้ว ทำให้คุณสามารถมอบประสบการณ์ที่ปลอดภัย ได้รับการปรับให้เหมาะกับแต่ละบุคคล และมีความเกี่ยวข้องกับผู้ใช้มากขึ้นได้

เนื้อหา

ขั้นตอนการลิงก์

การลิงก์บัญชีมีขั้นตอนง่ายๆ ไม่กี่ขั้นตอนดังนี้

  1. ลงทะเบียน URL การเรียกกลับโดยใช้ปุ่มเข้าสู่ระบบ
  2. แพลตฟอร์ม Messenger จะเรียกใช้ URL ที่ลงทะเบียนไว้เมื่อผู้ใช้เริ่มขั้นตอนการลิงก์บัญชี โดยพารามิเตอร์ redirect_uri และ account_linking_token จะถูกนำมาต่อท้ายการเรียกกลับที่คุณลงทะเบียนไว้
  3. เมื่อทำการลิงก์เรียบร้อยแล้ว ให้เปลี่ยนเส้นทางผู้ใช้ไปยังตำแหน่งที่ redirect_uri ระบุ และนำพารามิเตอร์ authorization_code (ที่คุณกำหนดไว้) มาต่อท้ายเพื่อยืนยันการลิงก์
  4. นอกจากนี้ คุณสามารถเรียกดู ID ในเพจ (PSID) ของผู้ใช้โดยใช้ตำแหน่งข้อมูลการลิงก์บัญชีได้เช่นกัน แต่คุณควรใช้ขั้นตอนนี้เฉพาะในกรณีที่ต้องการให้ PSID ของผู้ใช้เป็นส่วนหนึ่งของขั้นตอนการลิงก์เท่านั้น

การยกเลิกการลิงก์บัญชีสามารถทำได้ดังนี้

การเรียกกลับ

แพลตฟอร์ม Messenger จะเรียกใช้ URL การลิงก์บัญชีเมื่อผู้ใช้ทริกเกอร์การลิงก์บัญชี โดยพารามิเตอร์ redirect_uri และ account_linking_token จะถูกนำมาต่อท้าย URL การเรียกกลับ

<yourAccountLinkingUrl>
  ?account_linking_token=ACCOUNT_LINKING_TOKEN
  &redirect_uri=CALLBACK_URL

หากลิงก์บัญชีสำเร็จ คุณจะต้องดำเนินขั้นตอนให้เสร็จสมบูรณ์โดยเปลี่ยนเส้นทางเบราว์เซอร์ไปยัง URL ที่ระบุไว้ในพารามิเตอร์ redirect_uri และนำพารามิเตอร์ authorization_code ที่คุณกำหนดไว้มาต่อท้าย โปรดทราบว่า URL ดังกล่าวอาจมีพารามิเตอร์อยู่แล้ว ดังนั้น คุณควรนำรหัสการให้อนุญาตมาต่อท้ายพารามิเตอร์นั้น:

<redirect_uri>
  &authorization_code=AUTHORIZATION_CODE

หากลิงก์บัญชีไม่สำเร็จ ให้เปลี่ยนเส้นทางเบราว์เซอร์ไปยัง redirect_uri ที่ส่งถึงคุณเป็นพารามิเตอร์ แต่ไม่ต้องนำ authorization_code มาต่อท้าย

พารามิเตอร์

ชื่อพารามิเตอร์ คำอธิบาย

redirect_uri

เปลี่ยนเส้นทาง URI ซึ่งจะถูกเพิ่มโดย Messenger โดยคุณต้องเปลี่ยนเส้นทางเบราว์เซอร์ไปยังตำแหน่งนี้เมื่อสิ้นสุดขั้นตอนการยืนยันตัวตน ซึ่งอาจมี URL พารามิเตอร์ที่เข้ารหัสไว้อยู่แล้ว

account_linking_token

โทเค็นแบบใช้งานระยะสั้นที่ส่งมาจาก Messenger ซึ่งคุณต้องส่งกลับโดยเป็นส่วนหนึ่งของรูปแบบการเปลี่ยนเส้นทาง โทเค็นนี้จะใช้งานได้เพียง 5 นาทีเท่านั้น อีกทั้งมีการเข้ารหัสไว้และจะไม่ซ้ำกันสำหรับผู้ใช้แต่ละราย
คุณสามารถเรียกใช้ตำแหน่งข้อมูลการเรียกดู PSID ด้วยโทเค็นนี้เพื่อดึง PSID ที่สอดคล้องกันได้

authorization_code

รหัสที่ได้รับจากคุณเพื่อยืนยันว่าการลิงก์เสร็จสมบูรณ์ แพลตฟอร์ม Messenger จะส่งรหัสนี้กลับพร้อมกับ PSID ของผู้ใช้เป็นเหตุการณ์ Webhook การลิงก์บัญชี หากไม่มีการส่งพารามิเตอร์นี้จะทำให้ขั้นตอนการลิงก์ถูกยกเลิก

เหตุการณ์ Webhook

ขั้นตอนการลิงก์ที่เสร็จสมบูรณ์จะทริกเกอร์เหตุการณ์การลิงก์บัญชีให้ส่ง ID ในเพจ (PSID) ของผู้ใช้

คุณต้องลงทะเบียนเหตุการณ์การเรียกกลับการลิงก์บัญชี หากระบบไม่รับทราบเหตุการณ์ Webhook นี้จะทำให้ขั้นตอนการลิงก์ถูกยกเลิก

ตำแหน่งข้อมูลการเรียกดู PSID

ในบางกรณี คุณจำเป็นต้องเรียกดู ID ในเพจ (PSID) ของผู้ใช้ในระหว่างขั้นตอนการลิงก์ เพื่ออำนวยความสะดวกในสถานการณ์นี้ เราจึงได้เตรียมตำแหน่งข้อมูลการเรียกดู PSID ไว้เพื่อช่วยให้คุณสามารถดึง PSID ของผู้ใช้ที่ได้รับ account_linking_token ใช้งานได้และยังไม่หมดอายุ

คำขอ

curl -X GET "https://graph.facebook.com/v2.6/me?access_token=PAGE_ACCESS_TOKEN \
      &fields=recipient \
      &account_linking_token=ACCOUNT_LINKING_TOKEN"

การตอบกลับ

{
  "id": "PAGE_ID",
  "recipient": "PSID"
}    

ในบางกรณี คุณจำเป็นต้องยกเลิกการลิงก์ ID ในเพจ (PSID) ของผู้ใช้อย่างเป็นระบบจากฝั่งแบ็คเอนด์ของคุณ เพื่ออำนวยความสะดวกในสถานการณ์นี้ เราจึงได้เตรียมตำแหน่งข้อมูลการยกเลิกการลิงก์ PSID ที่จะช่วยให้คุณสามารถยกเลิกการลิงก์บัญชีของผู้ใช้ที่ได้รับ PSID ที่ใช้งานได้

คำขอ

curl -X POST -H "Content-Type: application/json" -d '{
   "psid":"PSID"
}' "https://graph.facebook.com/v2.6/me/unlink_accounts?access_token=PAGE_ACCESS_TOKEN"

การตอบกลับ

{
  "result": "unlink account success"
}

หลักปฏิบัติที่ดีที่สุด

ใช้การลิงก์บัญชีเมื่อคุณมีระบบบัญชีผู้ใช้ที่อยู่นอกเหนือขอบเขตของ Messenger

อนุญาตให้ผู้คนสร้างบัญชีจากภายใน Messenger เพื่อให้สามารถใช้งานบัญชีในที่อื่นๆ ได้

แจ้งให้เข้าสู่ระบบเมื่อมีความเกี่ยวข้องตามบริบท กล่าวคือ เมื่อผู้ใช้บอทของคุณเห็นประโยชน์ของการเข้าสู่ระบบ

พิจารณาว่าบอทของคุณควรทำอย่างไรหากผู้ใช้ปฏิเสธการเข้าสู่ระบบ

แสดงการยืนยันที่ชัดเจนและให้การต้อนรับอย่างอบอุ่นหลังจากเข้าสู่ระบบ

อย่าใช้การลิงก์บัญชีหากผู้คนจะโต้ตอบกับคุณผ่าน Messenger เท่านั้น คุณสามารถจัดเก็บข้อมูลบัญชีผ่าน ID เธรดได้

หากเลี่ยงได้ อย่าขอให้ดำเนินการลิงก์บัญชีในทันที ทั้งนี้เพื่อให้ผู้คนได้ทำความเข้าใจกับบอทของคุณก่อน

ขั้นตอนการออกแบบที่แนะนำ

  1. แจ้งให้เข้าสู่ระบบด้วยข้อความที่มีปุ่มการลิงก์บัญชีของเรา
  2. แสดงหน้าเข้าสู่ระบบของคุณ (รวมถึงตัวเลือก "สร้างบัญชี") ในตัวแสดงหน้าเว็บการลิงก์บัญชี ตรวจสอบให้แน่ใจว่าตัวแสดงหน้าเว็บสวยงามและทำงานได้ดีบนหน้าจอมือถือ
  3. หลังจากเข้าสู่ระบบสำเร็จแล้ว ให้แสดงข้อความยืนยันในตัวแสดงหน้าเว็บ ผู้ใช้จะต้องปิดข้อความนั้นเองในภายหลัง
  4. แสดงคำขอบคุณที่เป็นมิตรตามมาและ/หรือขั้นตอนถัดไปในเธรด รวมถึงตัวเลือก "ออกจากระบบ"