Referensi API Unggahan Lampiran

PERHATIAN: ID Lampiran akan kedaluwarsa setelah 90 hari. Setelah ID lampiran kedaluwarsa, Anda harus mengunggah ulang media Anda untuk mendapatkan ID lampiran baru.

Meskipun lampiran yang dapat digunakan kembali akan kedaluwarsa setelah 90 hari dan tidak dapat dikirim ulang, lampiran dalam utas pesan tidak akan pernah kedaluwarsa dan akan terlihat hingga pengguna menghapus pesan dari utas pesan. Jika kasus penggunaan Anda memungkinkan, Anda dapat menggabungkan langkah-langkah pengunggahan dan pengiriman seperti yang disebutkan di bawah untuk menghindari masalah TTL ini.

API Unggah Lampiran memungkinkan Anda untuk mengunggah aset yang dapat dikirim dalam pesan nantinya. Hal ini memungkinkan Anda agar tidak perlu mengunggah file yang umum digunakan berkali-kali. API mendukung menyimpan aset dari URL dan dari sistem file lokal Anda.

Anda juga dapat menggunakan Send API untuk mengirim pesan secara bersamaan dengan lampiran dan menyimpan lampiran untuk digunakan nanti. Untuk informasi selengkapnya, lihat bagian Unggah dan kirim di bawah.

Unggah lampiran

Untuk mengunggah lampiran, kirim POST permintaan ke endpoint /Your-page-id/message_attachments menggunakan message.attachment dengan type dan payload. Agar dapat menggunakan aset di beberapa pesan, atur payload.is_reusable ke true.

Contoh permintaan untuk unggahan dari URL

Diformat agar mudah dibaca. Ganti nilai cetak tebal, cetak miring, seperti page_access_token, dengan nilai Anda.

curl -X POST "https://graph.facebook.com/v21.0/Your-page-id/message_attachments" \
     -H "Content-Type: application/json" \
     -d '{
           "access_token":"Your_page_access_token",
           "message":{
             "attachment":{
               "type":"image", 
               "payload":{
                 "url":"https://your-url.com/image.jpg",
                 "is_reusable": true
               }
             }
           }
         }'

Contoh permintaan untuk unggahan dari file

Diformat agar mudah dibaca. Ganti nilai cetak tebal, cetak miring, seperti page_access_token, dengan nilai Anda.

curl -X POST -H "Content-Type: application/json" -d '{
   "message": {
     "attachment": {
       "type": "image"
     }
   },
   "filedata": "@/path-to-your-file/image.jpg",
   "type": "image/png"
  }' "https://graph.facebook.com/v21.0/{PAGE_ID}/message_attachments?access_token={PAGE_ACCESS_TOKEN}"

Jika berhasil, aplikasi Anda akan menerima objek JSON dengan attachment_id disetel ke ID lampiran Anda untuk digunakan dalam pesan Anda.

{"attachment_id": "Your-attachment-ID"}

Mengirim pesan dengan aset yang diunggah

Untuk mengirim pesan dengan aset yang telah Anda unggah sebelumnya, unggah dengan message.attachment.payload.is_reusable diatur ke true, kirim permintaan POST ke endpoint /Your-page-id/messages dengan recipient.id, dan objek message.attachment dengan type dan payload.attachment_id.

Contoh permintaan untuk unggahan dari file

Diformat agar mudah dibaca. Ganti nilai cetak tebal, cetak miring, seperti page_access_token, dengan nilai Anda.

curl -X POST -H "Content-Type: application/json" -d '{
    "recipient": {
      "id": "{PSID}"
    },
    "message": {
      "attachment": {
        "type": "image",
        "payload": {
          "attachment_id": "Your-attachment-ID"
        }
      }
    }
  }' "https://graph.facebook.com/v21.0/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"

Setelah berhasil, aplikasi Anda akan menerima objek JSON dengan success diatur ke true.

{"success": "true"}

Unggah dan kirim

Anda juga dapat mengunggah media dan mengirimkannya dalam satu permintaan API.

PERHATIAN:Jangan mengatur is_public=true di dalam payload untuk kasus ini. Lampiran di utas pesan pengguna selalu pribadi.

Contoh permintaan untuk unggahan dari URL

Diformat agar mudah dibaca. Ganti nilai cetak tebal, cetak miring, seperti page_access_token, dengan nilai Anda.

curl -X POST -H "Content-Type: application/json" -d '{
   "recipient": {
     "id": "{PSID}"
   },
   "message": {
     "attachment": {
       "type": "image",
       "payload": {
         "url": "https://your-url.com/image.jpg"
       }
     }
   }
  }' "https://graph.facebook.com/v21.0/{PAGE_ID}/messages?access_token={PAGE_ACCESS_TOKEN}"

Setelah berhasil, aplikasi Anda akan menerima objek JSON dengan success diatur ke true.

{"success": "true"}

Properti

Untuk lampiran dari URL, sediakan properti berikut di isi permintaan sebagai objek JSON. Untuk lampiran dari file, kirim properti sebagai data formulir.

message

Description of the message to be sent.
Property Type Description

message.attachment

Object

An object describing attachments to the message.

message.attachment

Properti Jenis Deskripsi

type

String

Jenis lampiran. Harus berupa salah satu dari berikut:

  • gambar
  • video
  • audio
  • file

payload

Objek

objek payload yang mendeskripsikan lampiran.

message.attachment.payload

Properti Jenis Deskripsi

url

String

Opsional. URL file yang akan diunggah. Ukuran file maksimum adalah 8MB untuk gambar dan 25MB untuk semua jenis file lainnya (setelah enkode). Waktu habis diatur menjadi 75 detik untuk video dan 10 detik untuk semua jenis file lainnya.

is_reusable

Boolean

Opsional, setelan default ke palsu.Jangan mengatur ke true jika Anda mengunggah dan mengirim dalam satu panggilan API.

Atur ke benar hanya ketika Anda mengunggah dan mengirim dalam langkah terpisah. ID lampiran kedaluwarsa setelah 90 hari. Unggah ulang media Anda untuk mendapatkan ID lampiran baru setelah 90 hari.

Meskipun lampiran yang dapat digunakan kembali akan kedaluwarsa setelah 90 hari dan tidak dapat dikirim ulang, lampiran dalam utas pesan tidak akan pernah kedaluwarsa dan akan terlihat hingga pengguna menghapus pesan dari utas pesan.

Kode Kesalahan

Kode kesalahanSubkodePesan

100

2018074

Kemungkinan ID tidak valid atau Anda tidak memiliki lampiran.

100

2018008

Gagal mengambil file dari URL. Periksa apakah URL tersebut valid, dengan sertifikat SSL yang valid, ukuran file valid, dan server menanggapi dengan cukup cepat agar terhindar dari waktu habis.

100

2018294

Waktu unggah video habis atau video rusak. Perhatikan bahwa jika video tidak dapat diambil dalam 75 detik, waktunya akan habis

100

2018047

Gagal mengunggah lampiran. Cara umum untuk memicu kesalahan ini adalah bahwa jenis media yang disediakan tidak sesuai dengan jenis file yang disediakan di URL