Webhooks สำหรับการส่งข้อความบน Instagram

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

ข้อกำหนด

คุณจะต้องนำข้อกำหนดดังต่อไปนี้มาปรับใช้ เพื่อรับการแจ้งเตือน Webhooks สำหรับการส่งข้อความบน Instagram

  • สิทธิ์การอนุญาต instagram_basic, instagram_manage_messages และ pages_manage_metadata
  • หากต้องการรับการแจ้งเตือน Webhooks ซึ่งมีข้อมูลที่เป็นของผู้ที่ไม่มีบทบาทในแอพของคุณหรือจัดการโดยบุคคลนั้นๆ แอพจะต้องมี Advanced Access

หมายเหตุ: คุณจะต้องให้แอพส่งข้อความทั้งหมดสำหรับธุรกิจของคุณสมัครรับข้อมูล Webhooks การส่งข้อความ

โหมดแอพ

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

โปรดเรียนรู้เพิ่มเติมเกี่ยวกับระดับสิทธิ์การเข้าถึง โหมดแอพ และบทบาทในแอพ

ข้อจำกัด

  • เมื่อลูกค้าแสดงความรู้สึกต่อหรือส่งต่อรูปภาพจากภาพสไลด์ในโพสต์บน Instagram การแจ้งเตือนก็จะมีรูปภาพแรกในภาพสไลด์ ซึ่งอาจไม่ใช่รูปภาพที่ลูกค้าแสดงความรู้สึกหรือส่งต่อ
  • เมื่อลูกค้าส่งข้อความมาพร้อมเนื้อหาที่แชร์ การแจ้งเตือนจะมีเพียง URL สำหรับสื่อหรือโพสต์ที่แชร์นั้น
  • ระบบไม่รองรับข้อความที่มี GIF และสติกเกอร์ หากผู้ใช้ส่งข้อความที่มี GIF หรือสติกเกอร์ ระบบจะไม่ทริกเกอร์ Webhook และจะไม่ส่งการแจ้งเตือน Webhook

เหตุการณ์ Webhook

ช่อง Webhookคำอธิบาย

message_reactions

ระบบจะส่งการแจ้งเตือนเมื่อลูกค้าแสดงความรู้สึกหรือยกเลิกการแสดงความรู้สึกต่อข้อความ

API กราฟ เวอร์ชั่น 12.0 ขึ้นไปจะรองรับความรู้สึก angry, sad, wow, love, like, laugh และ other

messages

ระบบจะส่งการแจ้งเตือนเมื่อลูกค้าส่งสิ่งต่อไปนี้ให้กับธุรกิจของคุณ

  • ข้อความที่มีข้อความหรือสื่อ (รูปภาพ/วิดีโอ/ไฟล์/เสียง)
  • เนื้อหาที่แชร์ (การแชร์สื่อ/โพสต์)
  • การตอบกลับหรือการกล่าวถึงในสตอรี่ โดยจะมีเพียงการกล่าวถึงในสตอรี่เท่านั้นที่จะทริกเกอร์ Webhook การแท็กในโพสต์ปกติจะไม่ทริกเกอร์ Webhook ขณะนี้ Webhook การตอบกลับสตอรี่ยังไม่รองรับ GIF หรือสติกเกอร์
  • การตอบกลับข้อความหรือสติกเกอร์แบบอินไลน์
  • มีการเลือกตัวเลือกข้อความตอบกลับด่วนหรือประโยคเริ่มการสนทนาหรือปุ่มเทมเพลตทั่วไปเอาไว้
  • ลูกค้าลบข้อความ
  • ระบบไม่รองรับข้อความจากลูกค้า
  • ลูกค้าส่งข้อความจากหน้ารายละเอียดสินค้าในร้านค้าบน Instagram
  • ลูกค้าคลิกที่โฆษณาที่นำไปยังการสนทนาผ่านการส่งข้อความบน Instagram (คลิกไปยัง Direct, CTD)

นอกจากนี้ ระบบยังส่งการแจ้งเตือนเมื่อธุรกิจของคุณส่งข้อความถึงลูกค้าอีกด้วย โดยระบบจะไม่ส่งการแจ้งเตือนเมื่อธุรกิจของคุณแสดงความรู้สึกหรือยกเลิกการแสดงความรู้สึกต่อข้อความของลูกค้า

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

messaging_postbacks

ระบบจะส่งการแจ้งเตือนเมื่อลูกค้าคลิกที่ตัวเลือกประโยคเริ่มการสนทนาหรือปุ่มเทมเพลตทั่วไป

จำเป็นต้องใช้เวอร์ชั่น 8.0 ขึ้นไป จำเป็นต้องใช้เวอร์ชั่น 11.0 ขึ้นไป เพื่อให้มีช่อง mid รวมอยู่ด้วย

messaging_seen

ระบบจะส่งการแจ้งเตือนเมื่อผู้รับอ่านข้อความแล้ว

messaging_referral

ระบบจะส่งการแจ้งเตือนเมื่อลูกค้าในการสนทนาที่มีอยู่ได้คลิกลิงก์ ig.me ที่มีพารามิเตอร์การอ้างอิง

standby

เมื่อขั้นตอนการส่งข้อความมีหลายขั้นตอน ระบบจะส่งการแจ้งเตือนเมื่อลูกค้าส่งข้อความถึงธุรกิจของคุณ แต่แอพไม่ได้ควบคุมการสนทนาในขณะที่มีการส่งข้อความ

ตัวอย่างการแจ้งเตือน

ต่อไปนี้เป็นตัวอย่างสำหรับการแจ้งเตือน Webhooks ประเภทต่างๆ ที่คุณสามารถรับได้

ข้อความ

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGID",  // ID of your Instagram Professional account
      "time": 1569262486134,
      "messaging": [
        {
          "sender": { "id": "IGSID" },    // Instagram-scoped ID for the customer who sent the message
          "recipient": { "id": "IGID" },  // ID of your Instagram Professional account
          "timestamp": 1569262485349,
          "message": {
            "mid": "MESSAGE-ID",   // ID of the message sent to your business
      
            "text": "MESSAGE-TEXT"     // Included when a customer sends a message containing text
      
            "attachments": [           // Included when a customer sends multiple media attachments or a URL for a story mention or share
              {
                "type":"image",             // Can be audio, file, image (image or sticker), share, story_mention, or video
                "payload":{ "url":"LINK" }  
              },
              {
                "type":"video",
                "payload":{ "url":"LINK" }
              }
            ]
      
            "is_deleted": true         // Included when a customer deletes a message
      
            "is_echo": true            // Included when your business sends a message to the customer

            "is_unsupported": true,    // Included when a customer sends a message with unsupported media
      
            "quick_reply": {           // Included when a customer clicks a quick reply
              "payload": "CUSTOMER-RESPONSE-PAYLOAD"   // The payload with the option selected by the customer
            },      
      
            "referral": {              // Included when a customer clicks an Instagram Shop product
              "product": {
                "id": "PRODUCT-ID"
            }      
      
            "referral": {                   // Included when a customer clicks an CTD ad
              "ref": "REF-DATA-IN-AD-IF-SPECIFIED"
              "ad_id": AD-ID,
              "source": "ADS",
              "type": "OPEN_THREAD",
              "ads_context_data": {
                "ad_title": TITLE-FOR-THE-AD,
                "photo_url": IMAGE-URL-THAT-WAS-CLICKED,
                "video_url": THUMBNAIL-URL-FOR-THE-AD-VIDEO,
              }
            }

            "reply_to":{               // Included when a customer sends an inline reply
              "mid":"MESSAGE-ID"
            } 
      
            "reply_to": {               // Included when a customer replies to a story
              "story": {
                "url":"CDN-URL",
                "id":"STORY-ID"       
              }
            }
          }
        }
      ]
    }
  ]
}

ความรู้สึกต่อข้อความ

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGID",  // ID for your Instagram Professional account
      "time": 1569262486134,
      "messaging": [
        {
          "sender": {
            "id": "IGSID"  // Instagram-scoped ID for the customer who sent the message
          },
          "recipient": {
            "id": "IGID"  // ID for your Instagram Professional account
          },
          "timestamp": 1569262485349,
          "reaction" :{
            "mid" : "MESSAGE-ID",
            "action": "react",    // or unreact
            "reaction": "love", // optional, to unreact if there is no reaction field
            "emoji": "\u{2764}\u{FE0F}" // optional, to unreact if there is no emoji field
          } 
        }
      ]
    }
  ]
}  

โพสต์ย้อนกลับของการส่งข้อความ

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGSID",  // ID of your Instagram Professional account
      "time": 1502905976963,
      "messaging": [
        {
          "sender": { "id": "IGSID" },    // Instagram-scoped ID for the customer who sent the message
          "recipient": { "id": "IGID" },  // ID of your Instagram Professional account
          "timestamp": 1502905976377,
          "postback": {
            "mid":"MESSAGE-ID",           // ID for the message sent to your business
            "title": "SELECTED-ICEBREAKER-REPLY-OR-CTA-BUTTON",
            "payload": "CUSTOMER-RESPONSE-PAYLOAD",  // The payload with the option selected by the customer
          }
        }
      ]
    }
  ]
}

การอ้างอิงในการส่งข้อความ

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGSID",  // ID of your Instagram Professional account  
      "time": 1502905976963,
      "messaging": [
        {
          "sender": {
            "id": "IGSID"  // Instagram-scoped ID for the customer who sent the message
          },
          "recipient": {
            "id": "IGID"  // ID of your Instagram Professional account
          },
          "timestamp": 1502905976377,
          "referral": {
                 "ref": "INFORMATION-INCLUDED-IN-REF-PARAMETER-OF-IGME-LINK"
                 "source": "IGME-SOURCE-LINK"  
                 "type":  "OPEN_THREAD"  // Only supported for existing conversations 
          }
        }
      ]
    }
  ]
}
  

ข้อความที่ได้รับการอ่านแล้ว

{
   "object":"instagram",
   "entry":[
      {
         "id":"IGID",  // ID for your Instagram Professional account
         "time":1569262486134,
         "messaging":[
            {
               "sender":{
                  "id":"IGSID"  // Instagram-scoped ID for the customer who sent the message
               },
               "recipient":{
                  "id":"IGID"  // ID for your Instagram Professional account
               },
               "timestamp":1569262485349,
               "read":{
                  "mid":"MESSAGE-ID"
               }
            }
         ]
      }
   ]
}

ดูเพิ่มเติม

  • โปรโตคอลการส่งมอบของ Messenger – หากคุณมีแอพที่จัดการข้อความมากกว่า 1 แอพ เช่น มี 1 แอพที่จัดการข้อความตอบกลับอัตโนมัติ และมีอีก 1 แอพที่จัดการการส่งเรื่องต่อให้กับเจ้าหน้าที่ คุณจะต้องใช้โปรโตคอลการส่งมอบเพื่อส่งต่อการสนทนาจากแอพหนึ่งไปยังอีกแอพหนึ่ง
  • คลิกไปยัง Direct, CTD – ไปที่ศูนย์ช่วยเหลือทางธุรกิจเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างโฆษณาที่คลิกไปยัง Instagram Direct

การสนับสนุนสำหรับผู้พัฒนา