เอกสารนี้จะแสดงวิธีที่คุณสามารถใช้ API วิดีโอถ่ายทอดสดเพื่อโพสต์วิดีโอบนเพจหลายๆ เพจพร้อมกันได้
การโพสต์ข้ามไม่สามารถใช้กับโปรไฟล์ส่วนตัวได้ แต่สามารถใช้ได้กับเพจและโปรไฟล์มืออาชีพเท่านั้น นอกจากวิดีโอถ่ายทอดสดแล้ว การโพสต์ข้ามยังสามารถใช้กับวิดีโอ VOD ได้อีกด้วย
หากต้องการโพสต์ข้ามวิดีโอถ่ายทอดสดไปยังเพจและโปรไฟล์มืออาชีพมากกว่าหนึ่งรายการและไปยัง VOD คุณจะต้องตรวจสอบให้ตรงตามเงื่อนไขต่อไปนี้
CREATE_CONTENT
บนเพจได้pages_manage_posts
pages_read_user_content
pages_manage_engagement
pages_show_list
publish_video
หากจะโพสต์ข้ามไปยังเพจหรือโปรไฟล์มืออาชีพอื่น เพจของคุณต้องส่งคำขอโพสต์ข้ามให้เพจหรือโปรไฟล์มืออาชีพ และเพจหรือโปรไฟล์ที่ได้รับคำเชิญจะต้องยอมรับคำขอของคุณ
เมื่อจะส่งคำขอโพสต์ข้าม ให้ส่งคำขอ POST
ไปยังตำแหน่งข้อมูล /<YOUR_PAGE_ID>
โดยระบุพารามิเตอร์ดังต่อไปนี้
begin_crossposting_handshake
ตั้งค่าไว้ในอาร์เรย์พร้อมรายการเพจที่คั่นด้วยเครื่องหมายจุลภาค ซึ่งมีการตั้งค่า partner_page_id
เป็น ID ของเพจที่คุณจะส่งคำขอให้ และตั้งค่า allow_live
เป็น true
เมื่อทดสอบการเรียกใช้ API คุณสามารถเพิ่มพารามิเตอร์ access_token
ที่ตั้งเป็นโทเค็นการเข้าถึงของคุณได้ ทั้งนี้ เมื่อดำเนินการเรียกใช้แบบปลอดภัยจากแอพของคุณ ให้ใช้คลาสโทเค็นการเข้าถึง
curl -i -X POST "https://graph.facebook.com/v21.0
<PAGE_1_ID> \
?begin_crossposting_handshake=[{partner_page_id:<PAGE_2_ID>,allow_live:true}]"
เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับการตอบกลับแบบ JSON ดังต่อไปนี้ โดยที่ตั้งค่า success
เป็น true
{ "success": true }
ตั้งค่า allow_live
เป็น false
เพื่อส่งคำขอสร้างความสัมพันธ์ในการโพสต์ข้าม โดยที่เพจจะสามารถโพสต์ข้ามวิดีโอถ่ายทอดสดลงในเพจของคุณได้หลังจากผู้ดูแลหรือผู้แก้ของคุณไขอนุมัติวิดีโอดังกล่าวแล้วเท่านั้น
หากต้องการยอมรับคำขอโพสต์ข้ามวิดีโอบนเพจของคุณจากเพจอื่น ให้ส่งคำขอ POST
ไปยังตำแหน่งข้อมูล /<ID>
โดยที่ตั้งค่าพารามิเตอร์ accept_crossposting_handshake
เป็น ID ของเพจที่ส่งคำขอ และตั้งค่า allow_live
เป็น true
curl -X POST "https://graph.facebook.com/v21.0
/<PAGE_2_ID>
?accept_crossposting_handshake=[{partner_page_id:<PAGE_1_ID>, allow_live:true}]"
เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับการตอบกลับแบบ JSON ดังต่อไปนี้ โดยที่ตั้งค่า success
เป็น true
และตอนนี้วิดีโอจะถ่ายทอดสดบนเพจหลายเพจแล้ว
หากต้องการปฏิเสธคำขอ ให้ตั้งค่า allow_live
เป็น false
หากต้องการค้นหาเพจที่ผู้ใช้แอพของคุณมีสิทธิ์อนุญาตสำหรับโพสต์ข้าม ให้ส่งคำขอ GET
ไปยังตำแหน่งข้อมูล /<PAGE_ID>/crosspost_whitelisted_pages
โดยระบุฟิลด์ต่อไปนี้
allows_live_crossposts
id
name
(ระบุหรือไม่ก็ได้)
curl "https://graph.facebook.com/v21.0
/<PAGE_ID>/crosspost_whitelisted_pages" \
-d "fields=id,name,allows_live_crossposts"
เมื่อดำเนินการสำเร็จ แอพของคุณจะได้รับรายการ ID, ชื่อ และผลลัพธ์ที่ระบุว่าเพจได้รับอนุญาตให้โพสต์ข้ามหรือไม่ ซึ่งจะแสดงเป็น true
หรือ false
true
หมายความว่าเพจต้นทางสามารถโพสต์วิดีโอถ่ายทอดสดแบบโพสต์ข้ามบนเพจปลายทางได้โดยตรงโดยที่ไม่ต้องมีการอนุญาตเพิ่มเติม false
หมายความว่าเพจปลายทางต้องโพสต์วิดีโอแบบโพสต์ข้ามด้วยตนเอง
{ "data": [ { "id": "107738621396466", "name": "Crossposting Page C", "allows_live_crossposts": false }, { "id": "106589754846067", "name": "Crossposting Page B", "allows_live_crossposts": true }, { "id": "106343288214714", "name": "Crossposting Target X", "allows_live_crossposts": true, } ], "paging": { "cursors": { "before": "<PAGE_CURSOR>", "after": "<PAGE_CURSOR>" } } }
ผู้ใช้ต้องสามารถดำเนินการในนามของเพจและต้องสามารถแก้ไขและอัพเดตวิดีโอได้ ซึ่งหมายความว่าแอพของคุณจะต้องมีสิทธิ์การอนุญาต pages_manage_posts
ในนามของผู้ใช้ของคุณ
เมื่อเราทราบแล้วว่ามีเพจใดบ้างที่สามารถโพสต์ข้ามได้ เราก็จะเพิ่ม crossposting_actions
ลงในอ็อบเจ็กต์ LiveVideo ได้ ซึ่งการดำเนินการโพสต์ข้ามแต่ละรายการเป็นตัวกำหนดว่าจะสามารถโพสต์ข้ามวิดีโอถ่ายทอดสดได้หรือไม่ และควรโพสต์วิดีโอดังกล่าวไปยังเพจเป้าหมายโดยอัตโนมัติหรือไม่
ให้ส่งคำขอ POST /{video-id}
เพื่ออัพเดตวิดีโอ
curl -i -X POST \
"https://graph.facebook.com/v10.0/112103234301221?fields=crosspost_shared_pages,crossposted_broadcasts%7Bstatus,from%7Bname%7D%7D&access_token=${access_token}" \
-H "Content-Type: application/json" \
-d @- << HEREDOC
{"crossposting_actions": [
{
"page_id": "107738621396466",
"action": "enable_crossposting"
},
{
"page_id": "106589754846067",
"action": "enable_crossposting_and_create_post"
},
{
"page_id": "106343288214714",
"action": "disable_crossposting"
}
]}
HEREDOC
การดำเนินการเหล่านี้แสดงตัวเลือกที่สามารถใช้งานได้ โดยตัวเลือกแรกจะอนุญาตให้เพจที่หนึ่ง (107738621396466
) สามารถโพสต์ข้ามวิดีโอจาก
ครีเอเตอร์สตูดิโอหรือ API ได้ แต่จะไม่โพสต์ข้ามวิดีโอไปยังเพจอื่นโดยอัตโนมัติ ตัวเลือกที่สองจะป้องกันไม่ให้เพจที่สอง (106589754846067
) โพสต์ข้ามวิดีโอ และตัวเลือกที่สามจะโพสต์วิดีโอไปยังเพจเป้าหมาย (106343288214714
) โดยอัตโนมัติ
ระบบจะส่งคืนอ็อบเจ็กต์ LiveVideo และเราได้ใช้จุดเชื่อมโยง crosspost_shared_pages
เพื่อดูว่ามีเพจใดบ้างที่สามารถโพสต์ข้ามได้ และใช้จุดเชื่อมโยง crossposted_broadcasts
เพื่อดูเพจต่างๆ ที่มีการเผยแพร่โพสต์ของเราไปแล้ว
หากความสัมพันธ์ในการโพสต์ข้ามมีการเปลี่ยนแปลงหรือไม่ถูกต้อง แน่นอนว่าการโพสต์ข้ามจะไม่สำเร็จ แต่ระบบจะไม่แสดงข้อผิดพลาดให้เห็น ซึ่งหมายความว่า การตรวจสอบการตอบกลับเพื่อดูสถานะการเผยแพร่ที่สำเร็จเป็นวิธีเดียวที่จะทำให้คุณทราบว่าการดำเนินการนั้นสำเร็จหรือไม่
{ "crosspost_shared_pages": { "data": [ { "name": "Crossposting Page C", "id": "107738621396466" }, { "name": "[FB Test Page] Crossposting Page B", "id": "106589754846067" } ] }, "crossposted_broadcasts": { "data": [ { "status": "UNPUBLISHED", "from": { "name": "[FB Test Page] Crossposting Page B", "id": "106589754846067" }, "id": "114820814022961" } ] }, "id": "112103234301221" }
หากมี crossposting_options
รายการใดรายการหนึ่งไม่ถูกต้อง คำขอทั้งหมดจะล้มเหลว และจะไม่มีการโพสต์ข้ามที่ดำเนินการสำเร็จ
{ "error": { "message": "Fatal", "type": "OAuthException", "code": -1, "error_subcode": 1363103, "is_transient": false, "error_user_title": "Invalid Parameters", "error_user_msg": "The request does not specify valid parameters, no action has been taken.", "fbtrace_id": "AnI03n5n0Px-ihrZjkWMeTP" } }