Gửi tin nhắn liên hệ (vCard)
Gửi một thẻ liên hệ. message.type là contact và message.contacts là mảng có cấu trúc (một hoặc nhiều thẻ); UnifyPort tạo ra vCard. Mỗi thẻ bắt buộc có name; phones[].number, emails[].address, organization và title là tùy chọn. Hiện chỉ WhatsApp hỗ trợ; mảng contacts rỗng hoặc thẻ thiếu name trả về 400 invalid_request, còn các nhà cung cấp không phải WhatsApp trả về 400 unsupported_message_type. Opaque reply handle WhatsApp có thể trả về khi kênh cung cấp định danh tin nhắn có thể phản hồi; đây không phải id tin nhắn cha.
https://api.unifyport.ai/v1/messagesTiêu đề
X-Api-KeyAPI key của không gian làm việc. Không gian làm việc được xác định từ tiêu đề này.
Content-TypeDùng application/json khi gửi nội dung yêu cầu JSON.
Tham số đường dẫn
Điểm cuối này không có tham số đường dẫn.
Nội dung yêu cầu
account_idTài khoản nhà cung cấp gửi tin nhắn.
toobjectbắt buộcĐích nhận với id và type.
toĐích nhận với id và type.
idĐịnh danh người nhận ở phía provider.
typeLoại người nhận: user, group hoặc channel.
enum: user, group, channel
messageobjectbắt buộcPayload tin nhắn chuẩn hóa. Văn bản dùng message.text; media dùng message.url.
messagePayload tin nhắn chuẩn hóa. Văn bản dùng message.text; media dùng message.url.
typeLoại tin nhắn: text, image, video, audio, document, file hoặc contact.
enum: text, image, video, audio, document, file, contact
textNội dung văn bản khi message.type là text.
urlURL media công khai dùng cho tin nhắn media.
file_urlURL media thay thế được adapter dạng tệp của provider hỗ trợ.
file_keyTham chiếu tệp phía provider hoặc kho lưu trữ khi được hỗ trợ.
captionChú thích không bắt buộc cho tin nhắn image, video, document hoặc file.
contacts[]object[]Một hoặc nhiều danh thiếp có cấu trúc khi message.type là contact.
contacts[]Một hoặc nhiều danh thiếp có cấu trúc khi message.type là contact.
nameTên hiển thị của liên hệ; bắt buộc với mỗi danh thiếp.
phones[]object[]Danh sách số điện thoại trong danh thiếp.
phones[]Danh sách số điện thoại trong danh thiếp.
numberSố điện thoại; bắt buộc với mỗi mục phone.
typeNhãn điện thoại không bắt buộc, chẳng hạn CELL hoặc WORK.
emails[]object[]Danh sách địa chỉ email trong danh thiếp.
emails[]Danh sách địa chỉ email trong danh thiếp.
addressĐịa chỉ email; bắt buộc với mỗi mục email.
typeNhãn email không bắt buộc, chẳng hạn WORK hoặc HOME.
organizationTên tổ chức không bắt buộc của liên hệ.
titleChức danh không bắt buộc của liên hệ.
provider_dataobjectTuỳ chọn riêng của provider như parse_mode của Telegram hoặc seconds / waveform cho âm thanh WhatsApp. Dùng reply_to cấp cao nhất cho trả lời trích dẫn.
provider_dataTuỳ chọn riêng của provider như parse_mode của Telegram hoặc seconds / waveform cho âm thanh WhatsApp. Dùng reply_to cấp cao nhất cho trả lời trích dẫn.
secondsThời lượng âm thanh tùy chọn theo giây cho tin nhắn audio WhatsApp; phải từ 0 trở lên.
waveformChuỗi dữ liệu dạng sóng tùy chọn cho tin nhắn audio WhatsApp.
reply_toobjectMục tiêu trả lời trích dẫn. Sao chép nguyên vẹn data.message.reply_token từ webhook đến vào reply_to.reply_token của yêu cầu gửi.
reply_toMục tiêu trả lời trích dẫn. Sao chép nguyên vẹn data.message.reply_token từ webhook đến vào reply_to.reply_token của yêu cầu gửi.
reply_tokenToken trả lời không trong suốt được sao chép nguyên vẹn từ data.message.reply_token của webhook đến.
mentions[]object[]Các thành viên được tham chiếu bằng placeholder {{@<id>}} trong text hoặc caption.
mentions[]Các thành viên được tham chiếu bằng placeholder {{@<id>}} trong text hoặc caption.
idĐịnh danh thành viên phía provider tương ứng với placeholder {{@<id>}}.
Nội dung phản hồi
message_idĐịnh danh tin nhắn UnifyPort (msg_...) cho tin nhắn đã được chấp nhận.
account_idTài khoản nhà cung cấp mà phản hồi này tham chiếu tới.
statusTrạng thái chấp nhận; accepted nghĩa là tin nhắn đã được xếp hàng để gửi tới nhà cung cấp.
provider_refTham chiếu tin nhắn phía nhà cung cấp, một khi nhà cung cấp gán một giá trị.
reply_tokenOpaque reply handle WhatsApp có thể trả về khi kênh cung cấp định danh tin nhắn có thể phản hồi; đây không phải id tin nhắn cha.
Phản hồi
200Yêu cầu thành công. Xem ví dụ nội dung phản hồi.
400Body, đường dẫn hoặc tham số yêu cầu không hợp lệ.
401Header X-Api-Key thiếu hoặc không hợp lệ.
409Thao tác đang yêu cầu xung đột với tài khoản hoặc tài nguyên nhà cung cấp đã có.
500Dịch vụ gặp lỗi không mong muốn.
501Provider đã chọn chưa triển khai thao tác này.
502Adapter hoặc upstream provider không thể hoàn tất thao tác.
Yêu cầu
curl -X POST https://api.unifyport.ai/v1/messages \
-H "X-Api-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"account_id": "acc_example",
"to": {
"id": "user_example",
"type": "user"
},
"message": {
"type": "contact",
"contacts": [
{
"name": "Jane Doe",
"phones": [{ "number": "+8613800000000", "type": "CELL" }],
"emails": [{ "address": "jane@example.com" }],
"organization": "ACME",
"title": "PM"
}
]
}
}'Phản hồi
{
"data": {
"message_id": "msg_example",
"account_id": "acc_example",
"status": "accepted",
"provider_ref": "provider_msg_example",
"reply_token": "<opaque WhatsApp reply handle>"
}
}