WhatsApp Cloud公共集成API | Woztell

WhatsApp云集成公共API - WOZTELL

介绍

公共集成API允许你查询WhatsApp云集成的某些信息,或在无需操作平台UI的情况下执行某些操作。

API端点

请使用以下公共API端点URL:
https://api.whatsapp-cloud.woztell.sanuker.com/v1.2/api/


注意

例如,PUT /whatsapp-message-template的端点为:
https://api.whatsapp-cloud.woztell.sanuker.com/v1.2/api/whatsapp-message-template


认证

WhatsApp云访问令牌

注意

WhatsApp云渠道的访问令牌可以用于公共API,但不包括GET /conversation-analytics、业务加密API和流程API。


  1. 在“设置”->“渠道”中,点击“编辑”进入相应的WhatsApp云渠道。
  1. 在“平台”中,进入“高级访问”。
  1. 点击“生成”以生成访问令牌。
  1. 访问令牌已生成。现有访问令牌可在下方管理。
  1. 访问令牌应作为查询参数accessToken传递,例如:


Payload 和签名上下文

注意

此认证方式仅适用于GET /conversation-analyticsGET /whatsapp-displayname-status、业务加密API和流程API。


要对公共集成API进行认证,需使用集成所需的相应PayloadSignedContext

  • Payload{"app":"appId","appIntegration":"appIntegrationId","channel":"channelId"}
  • SignedContext(signature).{{base64(JSON.stringify(payload))}}
  1. 通过查询channel并使用开放API,获取相应WhatsApp云渠道的信息。

请求:

query {
apiViewer{
channel(channelId:"696327315430a1f98231dfde"){
appId
environment(envId:"7lQNjrXbDO"){
info
integration{
integrationId
}
appIntegrationSignature
}
}
}
}
复制

响应:

{
"data": {
"apiViewer": {
"channel": {
"appId": "699802d69a73fc555f1c6bc4",
"environment": {
"info": {
"integrationId": "whatsapp-cloud",
"build": 3,
"alias": "dev-whats-app-cloud",
"appIntegrationId": "696327325430a1cbd131dfdf",
"subscribed": true
},
"integration": {
"integrationId": "whatsapp-cloud"
},
"appIntegrationSignature": "1RJ7rKRTHbOBoY95AgtXF5WT2578gy9+b4ekBp727cQ="
}
}
}
}
}
复制
  1. 按照以下格式创建Payload

    {"app":"appId","appIntegration":"appIntegrationId","channel":"channelId"}

Payload示例:

{"app":"699802d69a73fc555f1c6bc4","appIntegration":"696327325430a1cbd131dfdf","channel":"696327315430a1f98231dfde"}
复制


  1. Payload编码为Base64格式

  2. 将编码后的PayloadSignature结合,以创建以下格式的SignedContext

    (signature).{{base64(JSON.stringify(payload))}}

SignedContext示例

WAIBCzM6tnzboIwkEPAVVyaVq7VGaIKBaQ/Q+gP6qdA=.eyJhcHAiOiI2MjA2MmMwYjcxNzE5NTMyMDE5MmIxOGY3IiwiYXBwSW50ZWdyYXRpb24iOiI2NDIwZmlnMjhlNjViNDY2ZDQ2MDdlYTIiLCJjaGFubmVsIjoiNzIxZjMyYWM0ZTEyMzYzZGUxMjBkMjlkIg==
复制
  1. 将它们作为X-Woztell-PayloadX-Woztell-SignedContext添加到请求头中。


通用API

GET /waba-info

此API调用可获取与WABA相关的信息,包括频道的WABA名称电话号码WABA命名空间WABA ID

参数

名称 类型 描述 必填
accessToken 字符串 从WhatsApp云渠道生成的访问令牌
channelId 字符串 频道ID 此项或wabaID必填
wabaId 字符串 WABA ID 此项或channelId必填

请求

curl --location --request GET '/waba-info?accessToken=${ACCESS_TOKEN}&channelId=${CHANNEL_ID}'
复制

curl --location --request GET '/waba-info?accessToken=${ACCESS_TOKEN}&wabaId=${WABA_ID}'
复制

响应

{
"ok": 1,
"result": {
"waId" : "11111111111",
"phoneNumberId" : "123124123232",
"wabaId" : "422126422872292",
"name" : "My Business",
"phoneNumber" : "85212345678",
"phoneNumberCC" : "1",
"formattedPhoneNumber" : "+1 111-111-1111",
"namespace" : "2dwsa4_e24e_42f8_6b5a_110232ae4d5",
"embeddedSignup" : true
}
}
复制


GET /whatsapp-business-profile

此API调用可获取WhatsApp号码的商业资料。

参数

名称 类型 描述 必填
accessToken 字符串 从WhatsApp云渠道生成的访问令牌
phoneNumberId 字符串 电话号码ID

请求

curl --location --request GET '/whatsapp-business-profile?accessToken=${ACCESS_TOKEN}&phoneNumberId=${PHONE_NUMBER_ID}'
复制

响应

{
"ok": 1,
"data": {
"about": "Hello this is John!",
"address": "ABC Building",
"description": "Testing 123",
"email": "testemail@woztell.com",
"profile_picture_url": "IMAGE_URL",
"websites": [
"https://woztell.com/"
],
"vertical": "PROF_SERVICES",
复制


GET /whatsapp-displayname-status

此API调用用于获取与WhatsApp号码相关的详细信息

认证

请求头中需要包含Payload和签名上下文

参数

名称 类型 描述 必填
accessToken 字符串 从WhatsApp云渠道生成的访问令牌
phoneNumberId 字符串 电话号码ID

请求

响应

{
"ok": 1,
"data": {
"account_mode": "LIVE",
"verified_name": "WozTell Test",
"code_verification_status": "EXPIRED",
"display_phone_number": "+1 123-321-2652",
"quality_rating": "GREEN",
"is_official_business_account": false,
"messaging_limit_tier": "TIER_1K",
"id": "123465061846704"
}
}
复制



PATCH /whatsapp-business-profile

此API调用可更新WhatsApp号码的商业资料。

参数

名称 类型 描述 必填
accessToken 字符串 从WhatsApp云渠道生成的访问令牌
phoneNumberId 字符串 电话号码ID
profile 对象 要更新的商业资料内容
资料对象
名称 类型 描述 必填
messaging_product 字符串 只接受whatsapp
about 字符串 “关于”文本
address 字符串 您的企业地址
description 字符串 “描述”文本
email 字符串 您的企业邮箱地址
vertical 字符串 企业所属行业,详情请参见 此处
website 数组 您的企业网址URL,必须包含http://https://;最多2个网址。
profile_picture_url 字符串 头像URL

端点


请求正文


{
"accessToken": "ACCESS_TOKEN",
"phoneNumberId": "123456890999",
"profile": {
"about": "This is the about text.",
"address": "Office",
"description": "Testing Text",
"email": "test999@woztell.com",
"profile_picture_url": "IMAGE_URL",
"websites": [
"https://woztell.com/blog/", "https://woztell.com/pricing/"
],
"vertical": "PROF_SERVICES",
"messaging_product": "whatsapp"
}
}
复制

响应

{
"ok": 1
}
复制


PUT /media-id

此API调用可以向WhatsApp服务器上传媒体文件,以获取媒体ID。

注意

上传的媒体文件将在WhatsApp云服务器上保存30天。过期后,用户需要重新上传以获取新的媒体ID。


参数

名称 类型 描述 必填
phoneNumberId 字符串 电话号码ID
accessToken 字符串 从WhatsApp云渠道生成的访问令牌
type 字符串 imageaudiovideofile
url 字符串 媒体文件链接

端点

请求正文

{
"phoneNumberId": "123164329653069",
"accessToken": "ACCESS_TOKEN",
"type": "image",
"url": "MEDIA_URL",
}
复制

响应

{
"ok": 1,
"mediaId": "5770270532993662",
"fileType": "image"
}
复制


GET /conversation-analytics

此API用于检索所选日期范围内的对话分析数据。

认证

请求头中需要包含Payload 和签名上下文



参数

名称 类型 描述 必填
from UNIX时间戳 目标日期范围的开始日期
to UNIX时间戳 目标日期范围的结束日期
granularity 字符串 分析数据的粒度;支持 HALF_HOURDAILYMONTHLY
numbers 数组 需要获取分析的电话号码列表
metric_types 字符串 需要获取的指标列表;支持 COSTCONVERSATION
conversation_types 字符串 对话类型列表;包括 FREE_ENTRY_POINTFREE_TIERREGULARUNKNOWN
conversation_directions 字符串 发起对话方向列表;包括 business_initiateduser_initiated
dimensions 字符串 应用于分析的细分列表;包括 phonecountryconversation_typeconversation_reaction

请求

响应


{
"ok": 1,
"conversationAnalytics": {
"data_points": [
{
"start": 1672675200,
"end": 1672761600,
"conversation": 1,
"phone_number": "14132521446",
"country": "HK",
"conversation_type": "FREE_TIER",
"conversation_direction": "USER_INITIATED",
"cost": 0
},
{
"start": 1664899200,
"end": 1664985600,
"conversation": 1,
"phone_number": "14132521446",
"country": "HK",
"conversation_type": "FREE_TIER",
"conversation_direction": "BUSINESS_INITIATED",
"cost": 0
},
{
"start": 1676476800,
"end": 1676563200,
"conversation": 1,
"phone_number": "14132521446",
"country": "HK",
"conversation_type": "FREE_TIER",
"conversation_direction": "USER_INITIATED",
"cost": 0
}
]
}
}
复制



GET /catalogs

此API调用用于列出与特定WABA关联的目录。

认证

请求头中需要包含Payload 和签名上下文

请求

响应

{
"ok": 1,
"data": [
{
"id": "1234577510532066",
"name": "test_products"
}
],
"paging": {
"hasPrevious": false,
"hasNext": false
}
}
复制



GET /products

此API调用可列出与特定WABA关联的目录下的产品。

认证

请求头中需要包含Payload 和签名上下文

参数

名称 类型 描述 必填
catalogId 字符串 目录ID

请求

响应


{
"ok": 1,
"data": [
{
"name": "Test Product 1",
"price": "HK$900.00",
"image_url": "IMAGE_URL_1",
"retailer_id": "a6y7a9y6f0",
"id": "25233996219581593"
},
{
"name": "Test Product 2",
"price": "HK$2,000.00",
"image_url": "IMAGE_URL_2",
"retailer_id": "yu7q27pbg1",
"id": "7887884911230830"
}
],
"paging": {
"cursors": {
"before": "QVFIUjNtVGtsNzNVRF9sTlhla2JOLVhzUGtlbGdSUURvRDFzelB2MVQwZAHpCb3NieHZAvbXhwZADVud09hZA1pwQVhNMHk4NkNwOEw2ZAEt4MFNpZAk4tR05YVTZAB",
"after": "QVFIUmRwOElZAeHVsWHhiUmk2WlJWcTdnY181UTUzUmx0NEpiSDAzSGdJcHFZALURQSXdmSFZALWHI0ekwyMkx1dU4tXzZAXQnppWjc5MTVWZAmNtb0oyOU9KcEhB"
},
"hasPrevious": false,
"hasNext": false
}
}
复制


消息模板API

GET /whatsapp-message-templates

此API调用可分页列出特定WABA的WhatsApp消息模板,并支持可选筛选条件。

参数

名称 类型 描述 必填
wabaId 字符串 目标WABA ID
first 整数 消息模板数量;最大为100
after 字符串 用于获取下一页分页结果的游标;必须指定“after”或“before”
before 字符串 用于获取上一页分页结果的游标;必须指定“after”或“before”
status 字符串 要过滤的状态数组;默认值为:["APPROVED"]["PENDING"]["REJECTED"]["PENDING_DELETION"]["DELETED"](若未指定)
category 字符串 消息模板类别:["TRANSACTIONAL"]["MARKETING"]["OTP"]
quality_score 字符串 模板质量评分:GREENYELLOWRED
language 数组 消息模板语言;必须是数组且使用支持的语言代码,如en_USes
name 字符串 消息模板名称搜索
content 内容 消息模板内容搜索
name or content 字符串 消息模板名称或内容搜索

请求

curl --location --request GET '/whatsapp-message-templates?accessToken=${ACCESS_TOKEN}&wabaId=${WABA_ID}&first=10&after=MAZDZD&status=["APPROVED"]'
复制

响应


"ok": 1,
"data": [
{
"id": "363730401994967",
"name": "sample_flight_confirmation",
"category": "TICKET_UPDATE",
"languages": [
"pt_BR",
"es",
"id",
"en_US"
],
"statuses": [
{
"language": "pt_BR",
"status": "APPROVED"
},
{
"language": "es",
"status": "APPROVED"
},
{
"language": "id",
"status": "APPROVED"
},
{
"language": "en_US",
"status": "APPROVED"
}
],
"templates": [
{
"language": "pt_BR",
"status": "APPROVED",
"rejected_reason": "NONE",
"components": [
{
"type": "HEADER",
"format": "DOCUMENT"
},
{
"type": "BODY",
"text": "Esta é a sua confirmação de voo para {{1}}-{{2}} em {{3}}."
},
{
"type": "FOOTER",
"text": "Esta mensagem é de uma empresa não verificada."
}
],
"quality_score": {
"score": "UNKNOWN"
}
},
{
"language": "es",
"status": "APPROVED",
"rejected_reason": "NONE",
"components": [
{
"type": "HEADER",
"format": "DOCUMENT"
},
{
"type": "BODY",
"text": "Confirmamos tu vuelo a {{1}}-{{2}} para el {{3}}."
},
{
"type": "FOOTER",
"text": "Este mensaje proviene de un negocio no verificado."
}
],
"quality_score": {
"score": "UNKNOWN"
}
},
{
"language": "id",
"status": "APPROVED",
"rejected_reason": "NONE",
"components": [
{
"type": "HEADER",
"format": "DOCUMENT"
},
{
"type": "BODY",
"text": "Ini merupakan konfirmasi penerbangan Anda untuk {{1}}-{{2}} di {{3}}."
},
{
"type": "FOOTER",
"text": "Pesan ini berasal dari bisnis yang tidak terverifikasi."
}
],
"quality_score": {
"score": "UNKNOWN"
}
},
{
"language": "en_US",
"status": "APPROVED",
"rejected_reason": "NONE",
"components": [
{
"type": "HEADER",
"format": "DOCUMENT"
},
{
"type": "BODY",
"text": "This is your flight confirmation for {{1}}-{{2}} on {{3}}."
},
{
"type": "FOOTER",
"text": "This message is from an unverified business."
}
],
"quality_score": {
"score": "UNKNOWN"
}
}
]
}
],
"paging": {
"cursors": {
"before": "MAZDZD",
"after": "MAZDZD"
},
"hasNext": true,
"hasPrevious": false
}
}
复制


PUT /whatsapp-message-template

此API调用可创建全新的WhatsApp消息模板。

注意

每个WhatsApp商务账户每小时允许创建100个消息模板。


参数

名称 类型 描述 必填
wabaId 字符串 WABA ID
accessToken 字符串 从WhatsApp云渠道生成的访问令牌
name 字符串 消息模板名称
language 字符串 消息模板语言
category 字符串 消息模板类别:TRANSACTIONALMARKETINGOTP
components 数组 消息模板内容。请参见这里了解组件结构。
注意事项

通过在"example":{"header_handle":["IMAGE_URL"]}中插入图片URL,创建消息模板时,此API会自动上传该示例图片。


端点

请求正文

请求示例(图片头部)


{
"wabaId": "190787529545503",
"accessToken": "ACCESS_TOKEN",
"name": "test_template",
"language": "en_US",
"category": "MARKETING"
"components": [
{
"type": "BODY",
"text": "Hi there! Are you interested in our latest promotional sale?"
},
{
"type": "HEADER",
"format": "IMAGE",
"example":{"header_handle":["IMAGE_URL"]}
}
]
}
复制

请求示例(参数、页脚和操作按钮)

{
"wabaId": "190787529545503",
"accessToken": "ACCESS_TOKEN",
"name": "test_template",
"language": "en_US",
"category": "MARKETING"
"components": [
{
"type": "BODY",
"text": "hello {{1}} this is body template",
"example":{"body_text":[["Test"]]}
},
{
"type": "FOOTER",
"text": "this is footer template"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "PHONE_NUMBER",
"text": "Call",
"phone_number":"+85212769072"
},
{
"type": "URL",
"text": "URL",
"url":"https://www.woztell.com/"
}
]
}
]
}
复制

请求示例(参数与快速回复按钮)


{
"wabaId": "190787529545503",
"accessToken": "ACCESS_TOKEN",
"name": "test_template",
"language": "en_US",
"category": "MARKETING"
"components": [
{
"type": "BODY",
"text": "hello {{1}} this is body template",
"example":{
"body_text":[["Test"]]
}
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "yes"
},
{
"type": "QUICK_REPLY",
"text": "no"
}
]
}
]
}
复制

响应

{
"ok": 1,
"id": "516723536625510",
"language": "en_US"
}
复制

PATCH /whatsapp-message-template

此 API 调用可用于编辑现有消息模板。

Warning
注意

每个消息模板在 24 小时内只能编辑一次,且在 30 天内最多可编辑 10 次。


参数

名称 类型 描述 必填
wabaId string WABA ID
accessToken string 从 WhatsApp Cloud 渠道生成的访问令牌
messageTemplateName string 消息模板的名称
messageTemplateLanguage string 消息模板的语言
messageTemplateId string 消息模板的唯一 ID
components array 要更新到消息模板的内容
注意

每个消息模板的语言版本都有自己唯一的 ID。若要使用 PATCH /whatsapp-message-templates 编辑模板,必须指定所要编辑的语言版本。

通常,GET /whatsapp-message-templates 只会返回最新语言版本的 ID。因此,应首先通过语言筛选器,在 GET /whatsapp-message-templates 中获取特定语言的 ID。


端点

请求正文

{
"wabaId": "12986521265530",
"accessToken": "ACCESS_TOKEN",
"messageTemplateLanguage": "en_US",
"messageTemplateName": "test_template",
"messageTemplateId": "1748340935544945",
"components": [
{
"type": "BODY",
"text": "Winter's coming, it's time to check out our latest winter collection!"
}
]
}
复制

响应

{
"ok": 1,
"success": true
}
复制

DEL /whatsapp-message-template

此 API 调用可删除现有的消息模板。

参数

名称 类型 描述 是否必填
wabaId string WABA 账户 ID
accessToken string 从 WhatsApp Cloud 渠道生成的访问令牌
name string 消息模板名称

端点

请求正文

{
"wabaId": "12986521265530",
"accessToken": "ACCESS_TOKEN",
"name": "test_template"
}
复制

响应

{
"ok": 1,
"success": true
}
复制


流程 API

GET /flow

此 API 用于获取流程列表。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
limit integer 要获取的流程数量
after string 用于获取下一批线程,可从响应中的 paging.cursors 获取
before string 用于获取上一批线程,可从响应中的 paging.cursors 获取

请求

响应

{
"ok": 1,
"data": [
{
"label": "TEST FLOW (DRAFT)",
"value": "885692686603466",
"status": "draft",
"assets": [
{
"id": "SIGN_UP",
"label": "Customer Success (SIGN_UP)",
"data": "{}",
"preview": {
"preview_url": "https://business.facebook.com/wa/manage/flows/885692686603466/preview/?token=abdfac6c-1319-4a01-a896-d26482f44659",
"expires_at": "2024-03-08T04:52:37+0000"
}
}
],
"triggerMatchingObject": null
}
],
"paging": {
"cursors": {
"before": "QVFIUnJEbERTSFN1TEM5THFDdkJYNjExaF9xSUxjNjVGazJUWHBWTWV3Ukx0V2JQSFlMYmRzT0RXanpMeUVnd1VnSUlnQVBkamVyNkQ5dW9Ocm5YNVpoY2VR",
"after": "QVFIUnJEbERTSFN1TEM5THFDdkJYNjExaF9xSUxjNjVGazJUWHBWTWV3Ukx0V2JQSFlMYmRzT0RXanpMeUVnd1VnSUlnQVBkamVyNkQ5dW9Ocm5YNVpoY2VR"
},
"hasNext": false,
"hasPrevious": false
}
}
复制


GET /flow-screen-payload

此 API 用于获取流程屏幕负载。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 流程的唯一 ID。

请求

响应


{
"ok": 1,
"payload": {
"id": "screen_with_data",
"label": "Feedback With Data (screen_with_data)",
"data": "{\n \"would_recommend\": \"\",\n \"how_to_do_better\": \"\"\n}",
"screens": [
{
"id": "screen_with_data",
"label": "Feedback With Data (screen_with_data)",
"data": "{\n \"would_recommend\": \"\",\n \"how_to_do_better\": \"\"\n}",
"preview": {
"preview_url": "https://business.facebook.com/wa/manage/flows/1332875717353551/preview/?token=ed47bb0a-f749-4a0f-87f3-889f003b53ed",
"expires_at": "2024-03-06T03:56:10+0000"
}
}
]
}
}
复制



GET /flow-preview

此 API 用于获取流程预览的 URL。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 流程的唯一 ID。

请求

响应

{
    "ok": 1,
    "data": {
        "preview_url": "https://business.facebook.com/wa/manage/flows/994520121646941/preview/?token=5615e315-899c-4787-b211-a512c35f83aa",
        "expires_at": "2024-03-06T03:46:30+0000"
    }
}
复制



GET /flow-detail

此 API 用于获取流程的详细信息。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 流程的唯一 ID。

请求

响应


{
"ok": 1,
"id": "678952344393952",
"name": "Test Flow 2",
"categories": [
"OTHER"
],
"preview": {
"preview_url": "https://business.facebook.com/wa/manage/flows/678952344393952/preview/?token=90fd19f9-edf7-4a6a-8fea-8da4cbb687f7",
"expires_at": "2024-03-06T07:39:50+0000"
},
"status": "DRAFT",
"validation_errors": [],
"json_version": "3.1",
"whatsapp_business_account": {
"id": "619018099309339",
"name": "Test Group Limited (UAT)",
"currency": "USD",
"timezone_id": "42",
"message_template_namespace": "a02e2441_69dd_4ea2_a90b_4aca392f0afa"
},
"application": {
"link": "https://platform.woztell.com/",
"name": "Woztell",
"id": "689996742158814"
}
}
复制



PUT /create-flow

此 API 用于创建新的流程。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
name 字符串 新流程的名称。
categories 数组 流程类别列表。可以包含多个值,但至少需要一个:SIGN_UPSIGN_INAPPOINTMENT_BOOKINGLEAD_GENERATIONCONTACT_USCUSTOMER_SUPPORTSURVEYOTHER
clone_flow_id 字符串 要克隆的流程 ID
endpoint_url 字符串 流程端点的 URL。如果克隆的是 Flow JSON 版本低于 3.0,则不要提供此字段。

端点

请求正文

{
"data": {
"name": "Test Flow 2",
"categories": [ "SURVEY" ],
"clone_flow_id": "368669698913502",
"endpoint_url": "https://webhook.site/ff434d70-465c-4c79-90cc-333adfa858b5"
}
}
复制

响应

{
"ok": 1,
"id": "1557286081777970"
}
复制


PATCH /flow-metadata

此 API 用于更新流程的元数据。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 正在更新的流程 ID
name 字符串 流程的新名称
categories 数组 流程的新类别
endpoint_url 字符串 WA 流程端点的 URL。如果更新的流程 JSON 版本低于 3.0,请勿提供此字段。

端点

请求正文


{
"flowId": "1005133727262236",
"data": {
"name": "Test Flow ABC"
},
"endpoint_url": "https://webhook.site/ff434d70-465c-4c79-90cc-333adfa858b5"
}
复制

响应

{
"ok": 1,
"success": true
}
复制


PATCH /flow-json

此 API 用于更新流程的 JSON。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
name 字符串 流程的名称
version 字符串 流程 JSON 版本
screens JSON 可在 WhatsApp 管理器的流程构建器中输入的流程屏幕

端点

请求正文


{
"flowId": "910367050421850",
"data": {
"version": "3.1",
"screens": [
{
"id": "PREFERENCES",
"title": "Update Preferences",
"data": {},
"terminal": true,
"layout": {
"type": "SingleColumnLayout",
"children": [
{
"type": "Form",
"name": "form",
"children": [
{
"type": "CheckboxGroup",
"label": "Communication types",
"required": true,
"name": "communicationTypes",
"data-source": [
{
"id": "0",
"title": "Special offers and promotions"
},
{
"id": "1",
"title": "Changes to my subscription"
},
{
"id": "2",
"title": "News and events"
},
{
"id": "3",
"title": "New products"
}
]
},
{
"type": "CheckboxGroup",
"label": "Contact Preferences",
"required": false,
"name": "contactPrefs",
"data-source": [
{
"id": "0",
"title": "Whatsapp"
},
{
"id": "1",
"title": "Email"
},
{
"id": "2",
"title": "SMS"
}
]
},
{
"type": "Footer",
"label": "Done",
"on-click-action": {
"name": "complete",
"payload": {
"communicationTypes": "${form.communicationTypes}",
"contactPrefs": "${form.contactPrefs}"
}
}
}
]
}
]
}
}
]
}
}
复制

响应

{
"ok": 1,
"success": true,
"validation_errors": []
}
复制



DEL /flow

此 API 用于删除流程。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 要删除的流程 ID

端点

请求正文

{
"flowId": "913687770028833"
}
复制

响应

{
"ok": 1,
"success": true
}
复制


POST /publish-flow

此 API 用于发布流程。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 要发布的流程 ID

端点

请求正文

{
"flowId": "913687770028833"
}
复制

响应

{
"ok": 1,
"success": true
}
复制


POST /deprecate-flow

此 API 用于废弃流程。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
flowId 字符串 要废弃的流程 ID

端点

请求正文

{
"flowId": "913687770028833"
}
复制

响应

{
"ok": 1,
"success": true
}
复制


企业加密 API

POST /whatsapp-business-encryption

此 API 用于设置企业公钥。

身份验证

有效负载和签名上下文 需要包含在请求头中。

参数

名称 类型 描述 必填
publicKey 字符串 生成的 2048 位 RSA 企业公钥。请参阅 这里 了解如何生成公钥

端点

请求正文

{
    "publicKey": "-----BEGIN PUBLIC KEY-----\nABCDIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAls1409DedWXmHnt0Pb6s\nIdGkL6pFXxd5vPxrk/CChQssCGLK7jEPQwzhAZ/La7Cg/IvxjxvgC8DD3v8ZniU7\nHu5xPftKm3rEvNRwstRHaoPF+CNxHzHMy2DkgdVxvnBI6qtEjn+yZXdEOHhGHejH\nEf0EfFSMoyCaXea4E3LqvOE8iJ42uNtC7D4TmyeE+dTKudclswNA3QDA0zLH1M+Y\n9Oxv06FgD9S8gmvSwJgn3hfwLc/j5Dj5Qr6NAd9dRMQGLGeFEbg/JJXAVaAAxFlb\nvITHRG1ynRZDcrAri377Z+HS8G43o3TmrPyD0zRXQFbHCu+kOH5DBs3yFRcFjA7L\nwQIDAQAB\n-----END PUBLIC KEY-----"
}
复制

响应

{
"ok": 1
}
复制


GET /whatsapp-business-encryption

此 API 用于获取企业公钥。

身份验证

有效负载和签名上下文 需要包含在请求头中。

请求

响应

{
"ok": 1,
"data": [
{
"business_public_key": "-----BEGIN PUBLIC KEY-----\nABCDIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAls1409DedWXmHnt0Pb6s\nIdGkL6pFXxd5vPxrk/CChQssCGLK7jEPQwzhAZ/La7Cg/IvxjxvgC8DD3v8ZniU7\nHu5xPftKm3rEvNRwstRHaoPF+CNxHzHMy2DkgdVxvnBI6qtEjn+yZXdEOHhGHejH\nEf0EfFSMoyCaXea4E3LqvOE8iJ42uNtC7D4TmyeE+dTKudclswNA3QDA0zLH1M+Y\n9Oxv06FgD9S8gmvSwJgn3hfwLc/j5Dj5Qr6NAd9dRMQGLGeFEbg/JJXAVaAAxFlb\nvITHRG1ynRZDcrAri377Z+HS8G43o3TmrPyD0zRXQFbHCu+kOH5DBs3yFRcFjA7L\nwQIDAQAB\n-----END PUBLIC KEY-----",
"business_public_key_signature_status": "VALID"
}
]
}
复制