สมัครรับข้อมูลข้อความ Push

YouTube Data API (v3) สนับสนุนข้อความ Push ผ่าน PubSubHubbub ซึ่งเป็นโปรโตคอลการเผยแพร่/สมัครรับข้อมูลแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์สำหรับทรัพยากรที่เข้าถึงได้ทางเว็บ ระบบจะส่งการแจ้งเตือนไปยังผู้สมัครใช้บริการผ่านเว็บฮุค HTTP ซึ่งมีประสิทธิภาพมากกว่าโซลูชันที่ใช้แบบสำรวจ การใช้ PubSubHubbub จะทำให้เซิร์ฟเวอร์ของคุณทราบเหตุการณ์ต่างๆ ได้แบบเกือบเรียลไทม์โดยไม่ต้องกำหนดช่วงการหยั่งสัญญาณที่เหมาะสมที่สุดหรือดึงข้อมูลซ้ำๆ ที่ไม่มีการเปลี่ยนแปลง

เซิร์ฟเวอร์เรียกกลับของ PubSubHubbub จะได้รับการแจ้งเตือนฟีด Atom เมื่อช่องดำเนินการใดๆ ต่อไปนี้

  • อัปโหลดวิดีโอ
  • อัปเดตชื่อของวิดีโอ
  • อัปเดตคำอธิบายวิดีโอ

ขั้นตอนต่อไปนี้อธิบายวิธีสมัครรับการแจ้งเตือน

  1. ตั้งค่าเซิร์ฟเวอร์โค้ดเรียกกลับที่จัดการการแจ้งเตือนฟีด Atom ขาเข้าได้

  2. ใช้ Google เพื่อสมัครรับข้อมูลเพื่อรับข้อความ Push:

    • ตั้งค่า mode เป็น subscribe (หรือตั้งค่าโหมดเป็น unsubscribe เพื่อยกเลิกการสมัครใช้บริการ)

    • ตั้งค่า URL เรียกกลับเป็น URL ที่คุณตั้งค่าไว้ในขั้นตอนที่ 1

    • ตั้งค่า URL หัวข้อเป็น https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID โดยที่ CHANNEL_ID คือรหัสช่อง YouTube ที่คุณต้องการใช้เรียกข้อความ Push

  3. ประมวลผลการแจ้งเตือนที่ส่งไปยังเซิร์ฟเวอร์เรียกกลับ รูปแบบการแจ้งเตือนจะแสดงอยู่ด้านล่างนี้ โปรดทราบว่าคุณใช้ค่าขององค์ประกอบ <yt:videoId> เพื่อระบุวิดีโอที่เพิ่มเข้ามาหรืออัปเดตใหม่ได้ นอกจากนี้ คุณยังใช้ค่าขององค์ประกอบ <yt:channelId> เพื่อระบุช่องที่เป็นเจ้าของวิดีโอดังกล่าวได้ด้วย

    <feed xmlns:yt="http://www.youtube.com/xml/schemas/2015"
             xmlns="http://www.w3.org/2005/Atom">
      <link rel="hub" href="https://pubsubhubbub.appspot.com"/>
      <link rel="self" href="https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_ID"/>
      <title>YouTube video feed</title>
      <updated>2015-04-01T19:05:24.552394234+00:00</updated>
      <entry>
        <id>yt:video:VIDEO_ID</id>
        <yt:videoId>VIDEO_ID</yt:videoId>
        <yt:channelId>CHANNEL_ID</yt:channelId>
        <title>Video title</title>
        <link rel="alternate" href="http://www.youtube.com/watch?v=VIDEO_ID"/>
        <author>
         <name>Channel title</name>
         <uri>http://www.youtube.com/channel/CHANNEL_ID</uri>
        </author>
        <published>2015-03-06T21:40:57+00:00</published>
        <updated>2015-03-09T19:05:24.552394234+00:00</updated>
      </entry>
    </feed>