Chúng tôi sẽ ngừng cung cấp API Tại chỗ. Hãy tham khảo tài liệu về việc Ngừng cung cấp API Tại chỗ để biết chi tiết, đồng thời tìm hiểu cách chuyển sang API Đám mây thế hệ tiếp theo của chúng tôi.

Cài đặt ứng dụng

Cài đặt ứng dụng cho ứng dụng WhatsApp Business Tại chỗ.

Yêu cầu

  • Bạn phải thực hiện yêu cầu qua tài khoản admin của mình
  • Tất cả phản hồi đều phải chứa mã 200 OK HTTPS

Đọc

Lấy cài đặt ứng dụng hiện tại cho ứng dụng WhatsApp Business Tại chỗ

Ví dụ

Gửi yêu cầu GET đến điểm cuối /v1/settings/application để lấy cài đặt ứng dụng hiện tại.

GET /v1/settings/application

Khi thành công, phản hồi sẽ chứa mã 200 OK và một phần tải dữ liệu JSON chứa đối tượng application liệt kê tất cả cài đặt ứng dụng hiện tại cùng giá trị của những cài đặt đó.

Phản hồi mẫu

{
    "settings": {
        "application": {
            "callback_backoff_delay_ms": 3000,
            "callback_persist": true,
            "garbagecollector_enable": {
                "media": false,
                "messages": true
            },
            "heartbeat_interval": 5,
            "max_callback_backoff_delay_ms": 900000,
            "media": {
                "auto_download": [
                    "image",
                    "video",
                    "voice",
                    "sticker",
                    "audio",
                    "document"
                ]
            },
            "notify_user_change_number": true,
            "show_security_notifications": true,
            "unhealthy_interval": 30,
            "wa_id": "16315551019",
            "webhooks": {
               	"url": "<Webhook URL, https>",
               	"max_concurrent_requests": max-concurrent-requests,
               	"message": { // Available for v2.41.2 and above
                  	"sent": true,
                  	"delivered": true,
                  	"read": false
                 },
             },
             "verbose_logging": false,
             "log_level" : "info"
         },
    },
    "meta": {
        "api_status": "stable",
        "version": "3.0.1"
    }
}

Cạnh

CạnhMô tả

/media/providers

Dùng để quản lý danh sách nhà cung cấp file phương tiện trong trường hợp gửi liên kết của file phương tiện.

Cập nhật

Để cập nhật cài đặt ứng dụng, hãy gửi yêu cầu PATCH đến điểm cuối /v1/settings/application kèm theo đối tượng JSON chứa tên và giá trị của trường cần đặt.

Đối với các chiến dịch nhắn tin có lượng tin nhắn lớn, bạn nên vô hiệu hóa tính năng tự động thu thập dữ liệu rác bằng cách đặt garbagecollector_enable.messages thành false, sau đó bật lại tính năng này sau khi chiến dịch kết thúc bằng cách đặt lại về true.

Bạn có thể xác minh xem tính năng tự động thu thập dữ liệu rác đã bị vô hiệu hóa hay chưa bằng cách gửi yêu cầu GET đến điểm cuối /v1/settings/application và đọc thuộc tính garbagecollector_enable.

Yêu cầu mẫu

PATCH /v1/settings/application
{
    "callback_persist": true | false,
    "max_callback_backoff_delay_ms": max-delay-in-ms,
    "media": {
        "auto_download": ["audio", "document", "voice", "video", "image", "sticker"]
    }
    "callback_backoff_delay_ms": "delay-in-ms",
    "heartbeat_interval": heartbeat-interval-in-secs,
    "unhealthy_interval": unhealthy-interval-in-secs,
    "webhooks": { 
        # See the Webhooks Parameters table below for more information
        "max_concurrent_requests": max-concurrent-requests,
        "url": "<Webhook URL, https>",
        "message": {              // Available on v2.41.2 and above
                "sent": false,
                "delivered": true,
                "read": false
           },
    },
    "axolotl_context_striping_disabled": false | true,
    "notify_user_change_number": false | true,
    "show_security_notifications": false | true,
    # Available on v2.49.1 and above
    "garbagecollector_enable": {
        "messages": true | false,
        "media": true | false
    }
    "skip_referral_media_download": true | false,
    "webhook_payload_conversation_pricingmodel_disabled": false | true
    # Available on v2.51.1 and above
    "verbose_logging": false | true,
    "log_level" : log-level-str,
}

Khi thành công, phản hồi sẽ chứa mã 200 OK kèm theo null hoặc một đối tượng JSON.

Nếu bạn gặp bất kỳ lỗi nào, hãy xem bài viết Thông báo trạng thái và thông báo lỗi.

Thông số

Đối với một số cài đặt, bạn cần phải khởi động lại Coreapp thì các thay đổi mới có hiệu lực. Các cài đặt đó là callback_persist, garbagecollector_enable, verbose_logging, log_levelwebhooks.max_concurrent_requests.

`log_level`
TênMô tả

axolotl_context_striping_disabled

loại: Boolean

Ảnh hưởng đến các giới hạn kết nối cơ sở dữ liệu.


Cải thiện hiệu quả kết nối ra bên ngoài và vào nội bộ khi dùng v2.25. Phương thức tối ưu hóa này dựa trên việc tạo thêm các kết nối cơ sở dữ liệu. Đối với một số hoạt động triển khai, phương thức này có thể khiến hoạt động đạt đến giới hạn kết nối cơ sở dữ liệu. Trong trường hợp đó, hãy đặt cấu hình axolotl_context_striping_disabled thành true để vô hiệu hóa tính năng cải thiện hiệu quả này. Cách này sẽ không ảnh hưởng đến bất kỳ chức năng nào của Coreapp.


Giá trị:true, false (mặc định)

Cần phải khởi động lại Coreapp.

callback_backoff_delay_ms

loại: Chuỗi

Độ trễ xử lý lệnh gọi lại không thành công tính bằng mili giây.


Cài đặt này được dùng để đặt cấu hình khoảng thời gian chậm trễ xử lý trước khi thử thực hiện lệnh gọi lại không thành công một lần nữa. Độ trễ xử lý sẽ cộng thêm giá trị này mỗi khi lệnh gọi lại không nhận được phản hồi HTTPS 200 OK. Độ trễ xử lý bị giới hạn do cài đặt max_callback_backoff_delay_ms. Ví dụ: nếu một lệnh gọi lại không thành công trong lần đầu tiên, lệnh gọi đó sẽ thử lại sau 3000 mili giây (3 giây). Nếu lần thứ hai vẫn không thành công, độ trễ sẽ tăng lên 6000 mili giây (6 giây) trước khi thử lại. Quá trình này vẫn tiếp diễn cho đến khi lệnh gọi lại thành công hoặc độ trễ đạt đến 900000 mili giây (15 phút). Sau đó, lệnh gọi lại sẽ tiếp tục được thử lại nhưng độ trễ sẽ không tăng lên.


Mặc định: 3000

callback_persist

loại: Boolean

Lưu trữ các lệnh gọi lại trên ổ đĩa cho đến khi Webhook xác nhận lệnh gọi lại có thành công hay không. Thông báo và lệnh gọi lại đều được lưu trữ trong một cơ sở dữ liệu cục bộ nhằm đảm bảo chúng được gửi đi thành công trước khi bị gỡ khỏi cơ sở dữ liệu cục bộ đó. Đây là cách để bảo vệ lệnh gọi lại trong trường hợp ứng dụng API WhatsApp Business hoặc máy chủ gặp sự cố.
Những thông báo không thành công (không có phản hồi HTTPS 200) sẽ được thử lại vô thời hạn. Hãy sử dụng cài đặt này để đặt cấu hình thao tác thử lại.


Giá trị:true (mặc định), false
Cần phải khởi động lại Coreapp.

db_garbagecollector_enable

loại: Boolean

Trường này đã ngừng hoạt động trong v2.49.


Cho phép tự động dọn dẹp cơ sở dữ liệu tin nhắn nhằm hỗ trợ hoạt động quản lý cơ sở dữ liệu.


Thông số này có giá trị là false đối với những người dùng đã đặt pass_through thành false trước v2.29. Bạn nên bật cài đặt này để đảm bảo cơ sở dữ liệu hoạt động ổn định. Nếu muốn tắt cài đặt này, bạn nên cân nhắc dùng điểm cuối /services/message/gc để quản lý cơ sở dữ liệu.


Giá trị:true (mặc định), false

Cần phải khởi động lại Coreapp.

garbagecollector_enable

loại: Đối tượng trình thu gom rác

Cho phép tự động dọn dẹp tin nhắn và file phương tiện.


Bạn nên bật cài đặt dọn dẹp tin nhắn và file phương tiện để đảm bảo gỡ các hàng và file cũ/không sử dụng. Nếu trình thu gom rác bị vô hiệu hóa, bạn có thể khởi chạy bằng cách sử dụng điểm cuối /services/message/gc/services/media/gc. Hãy xem giá trị trong bảng Thông số trình thu gom rác.


Cần phải khởi động lại Coreapp.

heartbeat_interval

loại: Số nguyên

Khoảng thời gian nút Master giám sát các nút Coreapp tính bằng giây.


Mặc định: 5
Áp dụng cho cách thiết lập Đa kết nối.

max_callback_backoff_delay_ms

loại: Chuỗi

Độ trễ tối đa đối với một lệnh gọi lại không thành công tính bằng mili giây. Để biết thêm thông tin, hãy đọc phần mô tả về callback_backoff_delay_ms ở bên dưới.


Mặc định: 900000

media

loại: Mảng

Danh sách file phương tiện sẽ tự động tải xuống. Hãy xem phần Cài đặt tự động tải xuống file phương tiện để biết thêm thông tin.

notify_user_change_number

loại: Boolean

Ảnh hưởng đến thông báo user_changed_number của hệ thống.


Giá trị:true, false (mặc định)

pass_through

loại: Boolean

Kể từ v2.35, bạn sẽ không thể bật lại cài đặt pass_through cho Ứng dụng API WhatsApp Business.


Cho phép xóa hoặc lưu trữ từng tin nhắn vào cơ sở dữ liệu cục bộ sau khi gửi hoặc đọc tin nhắn đó.


Sau khi được gửi đi, tin nhắn sẽ được lưu trữ trong cơ sở dữ liệu cục bộ. Cơ sở dữ liệu này được dùng làm lịch sử của ứng dụng. Vì doanh nghiệp tự lưu giữ lịch sử của họ nên bạn có thể chỉ định xem bạn có muốn bật cài đặt pass_through cho tin nhắn hay không.

  • Khi bạn đặt thành true, tin nhắn sẽ bị gỡ khỏi cơ sở dữ liệu cục bộ sau khi người nhận đã nhận hoặc đọc tin nhắn đó.
  • Khi bạn đặt thành false, tất cả tin nhắn sẽ được lưu trong bộ nhớ cục bộ cho đến khi tự động bị xóa (tức là db_garbagecollector_enable có giá trị true) hoặc bị xóa hoàn toàn (tức là db_garbagecollector_enable có giá trị false). Hãy xem tài liệu về Dịch vụ để biết thêm thông tin.

Bạn nên tắt pass_through để lệnh gọi lại status có thể hoạt động bình thường.


Giá trị:true, false (mặc định)

Cần phải khởi động lại Coreapp.

show_security_notifications

loại: Boolean

Nếu bật thông số này, bạn sẽ nhận được thông báo Webhook user_identity_changed khi ứng dụng API WhatsApp Business phát hiện người dùng đang trò chuyện với bạn có khả năng đã thay đổi. Nếu trường hợp đó xảy ra, mọi tin nhắn gửi cho người dùng này sẽ bị chặn cho đến khi bạn xác nhận danh tính của người dùng này đã thay đổi bằng điểm cuối identity.


Giá trị:true, false (mặc định)

skip_referral_media_download

loại: Boolean

Nếu bạn đặt thông số này thành true, hình ảnh hoặc video trong quảng cáo Click đến WhatsApp mà người dùng đã nhấp vào sẽ không được tải xuống.


Mặc định:false

unhealthy_interval

loại: Số nguyên

Số giây tối đa nút Master sẽ chờ nút Coreapp phản hồi xung động trước khi xem xung động đó là bất thường và bắt đầu quy trình chuyển đổi dự phòng.


Mặc định: 30
Áp dụng cho cách thiết lập Đa kết nối.

webhook_payload_conversation_pricingmodel_disabled

loại: Boolean

Trường này đã ngừng hoạt động trong v2.39.

Kiểm soát hoạt động thêm phần tải dữ liệu có thông tin về cuộc trò chuyệngiá vào thông báo trạng thái tin nhắn.


Giá trị:true, false (mặc định)

Không cần phải khởi động lại Coreapp.

webhooks

loại: Đối tượng Webhooks

Bắt buộc khi bạn sử dụng Webhooks.

Cung cấp URL cho Webhook của bạn. Nếu bạn chưa đặt URL Webhook thì lệnh gọi lại sẽ bị hủy. Nếu bạn muốn biết cách đơn giản để xem và thử nghiệm Webhooks, hãy tham khảo phần Ứng dụng thử nghiệm mẫu.


Bạn có thể xác thực các sự kiện Webhooks bằng cách chỉ định một khóa bí mật được chia sẻ làm thông số truy vấn khi đặt URL Webhook. Ví dụ: https://url?auth='[shared_secret]'.

URL Webhook. Ví dụ: https://spotless-process.glitch.me/webhook.


Nếu bạn chưa đặt URL Webhook thì lệnh gọi lại sẽ bị bỏ dở. Lệnh gọi lại là một kênh quan trọng để gửi cả thông báo kịp thời lẫn thông báo lỗi ngoài dải băng tần. Do đó, bạn nên đặt cấu hình điểm cuối URL Webhook. Để biết chi tiết về các trường Webhook, hãy xem bảng Thông số Webhooks ở bên dưới.

verbose_logging

loại: Boolean

Cho phép ghi chi tiết trong coreapp. Bạn chỉ nên sử dụng cấp độ ghi này để thử nghiệm nhằm tránh tình trạng khối lượng đầu ra lớn. Nếu đặt thành true, hệ thống sẽ bỏ qua thuộc tính log_level.


Giá trị:true, false (mặc định)

log_level

loại: Đối tượng Webhooks

Đặt cấu hình cấp độ ghi trong coreapp. Mỗi cấp độ sẽ giảm dần khối lượng nhật ký đầu ra: info chứa nhiều thông tin nhất, còn fatal chỉ chứa các lỗi nghiêm trọng.


Giá trị:info (mặc định), warning, error, fatal

Thông số Webhooks

TênMô tả

max_concurrent_requests

loại: Số nguyên

Đặt cấu hình số lượng yêu cầu gọi lại nội tuyến tối đa được gửi đi.


Giá trị:6 (mặc định), 12, 18 hoặc 24
Cần phải khởi động lại Coreapp.

url

loại: Chuỗi

Thông báo gửi vào nội bộ và ra bên ngoài được định tuyến đến URL này. Hãy xem tài liệu về Webhooks để biết thêm thông tin.


Cần có điểm cuối dựa trên HTTPS; HTTP sẽ không hoạt động.
Ví dụ:https://spotless-process.glitch.me/webhook

message

loại: Đối tượng tin nhắn

Có trên v2.41.2 trở lên

Được lồng trong đối tượng webhooks, thông số này cho phép khách hàng đặt thông báo webhook liên quan đến tin nhắn mà họ muốn nhận từ danh sách sau: sent, delivered, read. Bạn có thể tìm hiểu thêm thông tin về các trạng thái này tại đây.


Doanh nghiệp có thể chọn nhận hoặc không nhận thông báo webhook này bằng cách đặt các giá trị này thành true (mặc định) hoặc false.

Thông số file phương tiện

TênMô tả

auto_download

loại: Mảng

Chỉ định các loại file phương tiện sẽ tự động tải xuống.


Giá trị:audio, document, voice, video, image, sticker

Thông số trình thu gom rác

TênMô tả

messages

loại: Bool

Đặt cấu hình tính năng dọn dẹp tin nhắn.


Giá trị:true (mặc định), false
Cần phải khởi động lại Coreapp.

media

loại: Bool

Đặt cấu hình tính năng dọn dẹp file phương tiện.


Giá trị:true, false (mặc định)
Cần phải khởi động lại Coreapp.

Đặt lại về cài đặt mặc định

Để đặt lại tất cả cài đặt ứng dụng về giá trị mặc định, hãy gửi yêu cầu DELETE đến điểm cuối /v1/settings/application.

Yêu cầu mẫu

DELETE /v1/settings/application

Khi thành công, phản hồi sẽ chứa mã 200 OK kèm theo null hoặc {}.

Nếu bạn gặp bất kỳ lỗi nào, hãy xem bài viết Thông báo trạng thái và thông báo lỗi.