Menyiapkan Webhooks untuk Instagram

Webhooks untuk Instagram memungkinkan Anda menerima notifikasi realtime setiap kali seseorang mengomentari objek Media pengguna aplikasi Anda, @menyebut pengguna aplikasi Anda; atau saat Cerita pengguna aplikasi Anda kedaluwarsa.

Menerima Notifikasi Webhooks Siaran Langsung

Untuk menerima notifikasi Webhooks langsung, ketentuan berikut harus dipenuhi:

  • Aplikasi Anda harus telah mengonfigurasi Webhooks Instagram dan berlangganan Kolom yang sesuai di Dasbor Aplikasi.
  • Untuk aplikasi Konsumen, aplikasi harus dalam Mode Terbit.
  • Untuk aplikasi Bisnis, aplikasi harus memiliki izin dengan level Advanced Access. Anda dapat meminta Advanced Access untuk izin yang ditampilkan di sini:

Jika izin aplikasi tidak memiliki level akses Advanced Access, aplikasi tidak menerima notifikasi Webhooks.

  • Pengguna aplikasi harus memberi aplikasi Anda Izin yang sesuai (instagram_manage_insights untuk Cerita, instagram_manage_comments untuk Komentar dan @Penyebutan).
  • Halaman yang terhubung ke akun pengguna aplikasi harus memiliki langganan Halaman diaktifkan.
  • Bisnis yang terhubung ke Halaman pengguna aplikasi harus terverifikasi.
  • Pemilik objek Media tempat munculnya komentar atau @penyebutan tidak boleh mengunci akunnya ke pribadi.

Batasan

  • Notifikasi webhook untuk Komentar di album tidak menyertakan ID album. Dapatkan ID Album dengan meng-kueri ID Komentar di Webhooks dan minta kolom media-nya.
  • Aplikasi tidak menerima notifikasi Webhooks jika Media tempat munculnya komentar atau @sebutan dibuat oleh akun pribadi.
  • Metrik insight cerita dengan jumlah kurang dari 5 akan ditampilkan sebagai -1.
  • Aplikasi hanya menerima notifikasi Webhooks untuk komentar di Media Instagram siaran langsung jika media disiarkan.
  • Reels tidak didukung.
  • Aplikasi Anda harus lolos Tinjauan Aplikasi (advanced access) lebih dahulu agar dapat menerima notifikasi webhook untuk kolom webhook comments dan live_comments.

Langkah 1: Buat Endpoint

Buat endpoint yang menerima dan memproses Webhooks. Selama konfigurasi, pilih objek Instagram Graph API, klik Siapkan, dan berlangganan ke satu atau beberapa kolom Instagram.

Kolom Instagram

KolomDeskripsiIzin yang Diperlukan

comments

Komentar di Media Instagram yang dimiliki oleh pengguna Instagram aplikasi Anda.

ad_id dan ad_title akan ditampilkan di objek media ketika seseorang mengomentari postingan Instagram yang dipromosikan atau postingan iklan Instagram. Hal ini dapat mengakibatkan notifikasi webhooks duplikat.

live_comments

Komentar di Media Instagram siaran langsung yang dimiliki oleh pengguna Instagram aplikasi Anda.

mentions

@Penyebutan untuk pengguna Instagram aplikasi Anda di sebuah komentar.

story_insights

Metrik yang menjelaskan interaksi pada cerita. Dikirim 1 jam setelah cerita kedaluwarsa.

Langkah 2: Mengaktifkan Langganan Halaman

Aplikasi Anda harus mengaktifkan langganan Halaman di Halaman yang terhubung ke akun pengguna aplikasi dengan mengirimkan permintaan POST ke edge Aplikasi yang Berlangganan Halaman dan dengan berlangganan ke kolom Halaman apa pun.

Persyaratan Endpoint

Sintaksis Permintaan

POST /{page-id}/subscribed_apps
  ?access_token={access-token}
  &subscribed_fields={fields}

Parameter Permintaan

Placeholder Nilai Deskripsi Nilai

{page_id}

ID Halaman yang terhubung ke akun pengguna aplikasi.

{access_token}

Token akses Halaman milik pengguna aplikasi.

{fields}

Kolom Halaman (contoh: feed).

Aplikasi Anda tidak akan menerima notifikasi tentang perubahan di kolom itu kecuali Anda mengonfigurasi langganan Halaman di Dasbor Aplikasi dan berlangganan kolom itu.

Contoh Permintaan

curl -i -X POST \
  "https://graph.facebook.com/v19.0/1755847768034402/subscribed_apps?subscribed_fields=feed&access_token=EAAFB..."
Contoh Tanggapan
{
  "success": true
}

Penggunaan Umum

Mengambil Insight Cerita

Jika Anda berlangganan kolom story_insights, kami akan mengirimi endpoint Anda notifikasi webhook yang berisi metrik interaksi pengguna tentang cerita setelah cerita itu kedaluwarsa.

Contoh Muatan Insight Cerita

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "story_insights",
            "value": {
              "media_id": "18023345989012587",
              "exits": 1,
              "replies": 0,
              "reach": 17,
              "taps_forward": 12,
              "taps_back": 0,
              "impressions": 28
            }
          }
        ],
        "id": "17841405309211844",  // Instagram Business or Creator Account ID
        "time": 1547687043
      }
    ],
    "object": "instagram"
  }
]

Membalas @Penyebutan di Komentar

Jika Anda berlangganan kolom mentions, kami akan mengirimi endpoint Anda notifikasi Webhooks setiap kali pengguna Instagram @menyebut Akun Instagram Business atau Akun Kreator Instagram di komentar atau keterangan.

Contoh: berikut contoh mutan notifikasi Webhooks komentar yang dikirim untuk Akun Instagram Business (17841405726653026):

Contoh Muatan @Penyebutan di Komentar

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "mentions",
            "value": {
              "comment_id": "17894227972186120",
              "media_id": "17918195224117851"
            }
          }
        ],
        "id": "17841405726653026",
        "time": 1520622968
      }
    ],
    "object": "instagram"
  }
]

Mendapatkan Konten Komentar

Untuk mendapatkan konten komentar, gunakan properti comment_id untuk meng-kueri edge GET /{ig-user-id}/mentioned_comment:

Contoh Kueri

GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_comment.comment_id(17894227972186120) 

Contoh Tanggapan

{
  "mentioned_comment": {
    "timestamp": "2018-03-20T00:05:29+0000",
    "text": "@bluebottle challenge?",
    "id": "17894227972186120"
  },
  "id": "17841405726653026"
}

Parse Muatan dan Tanggapan

Saat Anda menerima tanggapan, parse muatan untuk properti text untuk menentukan apakah Anda ingin menanggapi komentar tersebut. Untuk menanggapi, gunakan nilai properti caption_id dan media_id muatan notifikasi Webhooks untuk meng-kueri endpoint POST /{ig-user-id}/mentions:

Contoh Kueri

curl -i -X POST \
  -d "comment_id=17894227972186120" \
  -d "media_id=17918195224117851" \
  -d "message=Challenge%20accepted!" \
  -d "access_token={access-token}" \
  "https://graph.facebook.com/17841405726653026/mentions"

Contoh Tanggapan

{
  "id": "17911496353086895"
}

Membalas @Penyebutan di Keterangan

Jika Anda berlangganan kolom mentions, kami akan mengirimi endpoint Anda notifikasi Webhooks setiap kali Pengguna @menyebut Akun Instagram Business atau Akun Kreator Instagram di komentar atau keterangan pada objek media yang tidak dimiliki oleh Bisnis atau Kreator itu.

Berikut adalah contoh muatan notifikasi Webhooks @penyebutan yang dikirim untuk Akun Instagram Business (17841405726653026):

Contoh Notifikasi Webhooks @Penyebutan di Keterangan

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "mentions",
            "value": {
              "media_id": "17918195224117851"
            }
          }
        ],
        "id": "17841405726653026",
        "time": 1520622968
      }
    ],
    "object": "instagram"
  }
]

Mendapatkan Konten Keterangan

Untuk mendapatkan konten keterangan, gunakan properti media_id untuk meng-kueri edge GET /{ig-user-id}/mentioned_media:

Contoh Kueri

GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_media.media_id(17918195224117851){caption,media_type} 

Contoh Tanggapan

{
  "mentioned_media": {
    "caption": "@bluebottle There can be only one!",
    "media_type": "IMAGE",
    "id": "17918195224117851"
  },
  "id": "17841405726653026"
}

Melakukan Parse Muatan dan Tanggapan

Saat Anda menerima tanggapan, parse muatan untuk properti caption untuk menentukan apakah Anda ingin menanggapi komentar tersebut. Untuk menanggapi, gunakan properti media_id Webhooks untuk meng-kueri edge POST /{ig-user-id}/mentions:

Contoh Kueri

curl -i -X POST \
  -d "media_id=17918195224117851" \
  -d "message=MacLeod%20agrees!" \
  -d "access_token={access-token}" \
  "https://graph.facebook.com/17841405726653026/mentions"

Contoh Tanggapan

{
  "id": "17911496353086895"
}