注意事項:附件編號於 90 天後過期。附件編號過期後,您需要重新上載影音素材以取得新的附件編號。
雖然可重複使用的附件將於 90 天後過期,且無法重新傳送,但訊息串中的附件永遠不會過期,且在用戶從訊息串中刪除之前會一直顯示。如果您的使用案例允許的話,您可同時採取下文所述的上載和傳送步驟,以免發生此存留時間問題。
附件上載 API 可讓您之後在訊息中上載素材,與訊息一起傳送。這樣您就不必多次上載常用的檔案。API 支援從網址和本機檔案系統儲存素材。
您亦可使用 Send API 傳送含有附件的訊息,同時儲存該附件以便日後使用。如需更多資訊,請參閱下面的上載和傳送區塊。
若要上載附件,請向 /
Your-page-id
/message_attachments
端點傳送 POST
要求,其中的 message.attachment
需包含 type
和 payload
。如需在多則訊息中使用素材,請將 payload.is_reusable
設為 true
。
已設定格式以便閱讀。使用自家值替換 bold、italics values,如 page_access_token。
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
}
}
}
}'
已設定格式以便閱讀。使用自家值替換 bold、italics values,如 page_access_token。
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}"
成功的話,應用程式會收到 JSON 物件,其中 attachment_id
設為要在訊息中使用的附件編號。
{"attachment_id": "Your-attachment-ID"}
如要傳送包含您先前已經上載的素材的訊息,並且在上載時將 message.attachment.payload.is_reusable
設為 true
,請向編號為 recipient.id
的 /
Your-page-id
/messages
端點傳送 POST
要求,其中的 message.attachment
物件包含 type
和 payload.attachment_id
。
已設定格式以便閱讀。使用自家值替換 bold、italics values,如 page_access_token。
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}"
成功的話,應用程式會收到 JSON 物件,其中的 success
設為 true
。
{"success": "true"}
您還可上載影音素材並透過單個 API 要求傳送。
注意事項:在此案例中,請勿設定裝載中的 is_public=true
。用戶訊息串中的附件會一律保密。
已設定格式以便閱讀。使用自家值替換 bold、italics values,如 page_access_token。
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}"
成功的話,應用程式會收到 JSON 物件,其中的 success
設為 true
。
{"success": "true"}
針對來自網址的附件,請以 JSON 物件格式傳送要求,並於要求內文中提供下列屬性。針對來自檔案的附件,請以表格資料形式傳送屬性。
message
Property | Type | Description |
---|---|---|
| Object | An object describing attachments to the message. |
message.attachment
屬性 | 類型 | 說明 |
---|---|---|
| 字串 | 附件類型。必須是下列其中一項:
|
| 物件 | 描述附件的 |
message.attachment.payload
屬性 | 類型 | 說明 |
---|---|---|
| 字串 | 可選。要上載檔案的網址。圖像檔案大小不超過 8MB,所有其他檔案類型的大小不超過 25MB(編碼後)。影片逾時期限設為 75 秒,所有其他檔案類型的逾時期限為 10 秒。 |
| 布林值 | 此為選用項目,預設為 false。如果您在一個 API 呼叫中上載和傳送,請勿將其設為 只有在分為不同步驟上載和傳送時才設為 true。附件編號會於 90 天後過期。90 天後,重新上載影音素材以取得新的附件編號。 雖然可重複使用的附件將於 90 天後過期,且無法重新傳送,但訊息串中的附件永遠不會過期,且在用戶從訊息串中刪除之前會一直顯示。 |
錯誤代碼 | 子代碼 | 訊息 |
---|---|---|
100 | 2018074 | 編號可能無效或您並未擁有此附件。 |
100 | 2018008 | 無法從網址擷取檔案。檢查該網址是否有效、具備有效的 SSL 證書、有效的檔案大小,以及伺服器的回應速度夠快,能避免逾時。 |
100 | 2018294 | 影片上載逾時或影片已損壞。請注意,若未能在 75 秒內擷取此影片便會逾時。 |
100 | 2018047 | 上載附件失敗。觸發此錯誤的一種常見原因,就是所提供的影音素材類型與網址中提供的檔案類型不符。 |