whatsapp.api 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. import "../base.api"
  2. import "./agent.api"
  3. import "./label_relationship.api"
  4. type (
  5. // The data of whatsapp information | Whatsapp信息
  6. WhatsappInfo {
  7. BaseIDInfo
  8. // Status 1: normal 2: ban | 状态 1 正常 2 禁用
  9. Status *uint8 `json:"status,optional"`
  10. WaId *string `json:"waId,optional"`
  11. WaName *string `json:"waName,optional"`
  12. // 回调地址
  13. Callback *string `json:"callback,optional"`
  14. // 模式ID
  15. AgentId *uint64 `json:"agentId,optional"`
  16. AgentInfo *AgentInfo `json:"agentInfo,optional"`
  17. // 微信账号
  18. Account *string `json:"account,optional"`
  19. // 手机号
  20. Phone *string `json:"phone,optional"`
  21. Cc *string `json:"cc,optional"`
  22. // 号码名称
  23. PhoneName *string `json:"phoneName,optional"`
  24. // 号码状态
  25. PhoneStatus *string `json:"phoneStatus,optional"`
  26. Tokens *uint64 `json:"tokens,optional"`
  27. // 号码发送频率号码发送频率
  28. Frequency *string `json:"frequency,optional"`
  29. // 号码质量
  30. Quality *string `json:"quality,optional"`
  31. // 号码校验状态
  32. VerifyStatus *string `json:"verifyStatus,optional"`
  33. // 机构 ID
  34. OrganizationId *uint64 `json:"organizationId,optional"`
  35. OrganizationName *string `json:"organizationName,optional"`
  36. // 大模型服务地址
  37. ApiBase *string `json:"apiBase,optional"`
  38. // 大模型服务密钥
  39. ApiKey *string `json:"apiKey,optional"`
  40. // 白名单
  41. AllowList []ContactInfo `json:"allowList,optional"`
  42. // 群白名单
  43. GroupAllowList []ContactInfo `json:"groupAllowList,optional"`
  44. // 黑名单
  45. BlockList []ContactInfo `json:"blockList,optional"`
  46. // 群黑名单
  47. GroupBlockList []ContactInfo `json:"groupBlockList,optional"`
  48. }
  49. WhatsappPhoneInfo {
  50. Avatar *string `json:"avatar,optional"`
  51. Industry *string `json:"industry,optional"`
  52. Intro *string `json:"intro,optional"`
  53. Address *string `json:"address,optional"`
  54. Email *string `json:"email,optional"`
  55. Website *string `json:"website,optional"`
  56. }
  57. // The response data of whatsapp list | Whatsapp列表数据
  58. WhatsappListResp {
  59. BaseDataInfo
  60. // Whatsapp list data | Whatsapp列表数据
  61. Data WhatsappListInfo `json:"data"`
  62. }
  63. // Whatsapp list data | Whatsapp列表数据
  64. WhatsappListInfo {
  65. BaseListInfo
  66. // The API list data | Whatsapp列表数据
  67. Data []WhatsappInfo `json:"data"`
  68. }
  69. // Get whatsapp list request params | Whatsapp列表请求参数
  70. WhatsappListReq {
  71. PageInfo
  72. // 手机号
  73. Phone *string `json:"phone,optional"`
  74. // 号码名称
  75. PhoneName *string `json:"phoneName,optional"`
  76. WaId *string `json:"waId,optional"`
  77. OrganizationId *uint64 `json:"organizationId,optional"`
  78. }
  79. // Whatsapp information response | Whatsapp信息返回体
  80. WhatsappInfoResp {
  81. BaseDataInfo
  82. // Whatsapp information | Whatsapp数据
  83. Data WhatsappInfo `json:"data"`
  84. }
  85. AutomationReq {
  86. WaId *string `json:"waId,optional"`
  87. Phone *string `json:"phone,optional"`
  88. }
  89. AutomationResp {
  90. BaseDataInfo
  91. // Whatsapp list data | Whatsapp列表数据
  92. Data ConversationalAutomationInfo `json:"data"`
  93. }
  94. ConversationalAutomationInfo {
  95. Prompts []string `json:"prompts,optional"`
  96. Commands []Command `json:"commands,optional"`
  97. Phone string `json:"phone,optional"`
  98. EnableWelcomeMessage bool `json:"enableWelcomeMessage,optional"`
  99. }
  100. Command {
  101. CommandDescription string `json:"commandDescription,optional"`
  102. CommandName string `json:"commandName,optional"`
  103. }
  104. SetAutomationReq {
  105. EnableWelcomeMessage bool `json:"enableWelcomeMessage,optional"`
  106. Phone string `json:"phone,optional"`
  107. Commands []Command `json:"commands,optional"`
  108. Prompts []string `json:"prompts,optional"`
  109. WaId string `json:"waId,optional"`
  110. }
  111. sendCodeReq {
  112. Cc *string `json:"cc"`
  113. Phone *string `json:"phone"`
  114. WaId *string `json:"waId"`
  115. Method *string `json:"method"`
  116. Locale *string `json:"locale"`
  117. }
  118. submitCodeReq {
  119. Cc *string `json:"cc"`
  120. Phone *string `json:"phone"`
  121. WaId *string `json:"waId"`
  122. Code *string `json:"code"`
  123. }
  124. getQrcodeReq {
  125. Phone *string `json:"phone"`
  126. WaId *string `json:"waId"`
  127. }
  128. getQrcodeResp {
  129. BaseDataInfo
  130. Data QrcodeListInfo `json:"data"`
  131. }
  132. QrcodeListInfo {
  133. BaseListInfo
  134. Data []Qrcode `json:"data"`
  135. }
  136. Qrcode {
  137. Phone string `json:"phone,optional"`
  138. QrdlCode string `json:"qrdlCode,optional"`
  139. GenerateQrImage string `json:"generateQrImage,optional"`
  140. PrefilledMessage string `json:"prefilledMessage,optional"`
  141. DeepLinkUrl string `json:"deepLinkUrl,optional"`
  142. QrImageUrl string `json:"qrImageUrl,optional"`
  143. }
  144. createQrcodeReq {
  145. Phone string `json:"phone"`
  146. GenerateQrImage string `json:"generateQrImage"`
  147. PrefilledMessage string `json:"prefilledMessage"`
  148. WaId string `json:"waId"`
  149. }
  150. updateQrcodeReq {
  151. Phone string `json:"phone,optional"`
  152. GenerateQrImage string `json:"generateQrImage,optional"`
  153. PrefilledMessage string `json:"prefilledMessage,optional"`
  154. QrdlCode string `json:"qrdlCode,optional"`
  155. WaId string `json:"waId"`
  156. }
  157. removeQrcodeReq {
  158. Phone string `json:"phone,optional"`
  159. QrdlCode string `json:"qrdlCode,optional"`
  160. WaId string `json:"waId"`
  161. }
  162. getBusinessReq {
  163. Phone *string `json:"phone"`
  164. WaId *string `json:"waId"`
  165. }
  166. getBusinessResp {
  167. BaseDataInfo
  168. Data BusinessInfo `json:"data"`
  169. }
  170. BusinessInfo {
  171. Vertical string `json:"vertical,optional"`
  172. Description string `json:"description,optional"`
  173. Email string `json:"email,optional"`
  174. Address string `json:"address,optional"`
  175. ProfilePictureUrl string `json:"profilePictureUrl,optional"`
  176. Websites []string `json:"websites,optional"`
  177. About string `json:"about,optional"`
  178. }
  179. setBusinessReq {
  180. Phone *string `json:"phone"`
  181. WaId *string `json:"waId"`
  182. Vertical string `json:"vertical,optional"`
  183. Description string `json:"description,optional"`
  184. Email string `json:"email,optional"`
  185. Address string `json:"address,optional"`
  186. ProfilePictureUrl string `json:"profilePictureUrl,optional"`
  187. Websites []string `json:"websites,optional"`
  188. About string `json:"about,optional"`
  189. }
  190. registerReq {
  191. Phone *string `json:"phone"`
  192. WaId *string `json:"waId"`
  193. }
  194. deregisterReq {
  195. Phone *string `json:"phone"`
  196. WaId *string `json:"waId"`
  197. }
  198. UpdateAgentReq {
  199. Id uint64 `json:"id"`
  200. AgentId uint64 `json:"agentId"`
  201. }
  202. // 获取黑白名单列表返回体
  203. WhatsappAllowBlockListResp {
  204. BaseDataInfo
  205. // Wx information | Wx数据
  206. Data WhatsappAllowBlockListRespData `json:"data"`
  207. }
  208. // WhatsappAllowBlockListRespData
  209. WhatsappAllowBlockListRespData {
  210. // 白名单
  211. AllowList *string `json:"allowList,optional"`
  212. // 群白名单
  213. GroupAllowList *string `json:"groupAllowList,optional"`
  214. // 黑名单
  215. BlockList *string `json:"blockList,optional"`
  216. // 群黑名单
  217. GroupBlockList *string `json:"groupBlockList,optional"`
  218. }
  219. UpdateAllowAndBlockListReq {
  220. Id uint64 `json:"id"`
  221. // 白名单
  222. AllowList *string `json:"allowList,optional"`
  223. // 群白名单
  224. GroupAllowList *string `json:"groupAllowList,optional"`
  225. // 黑名单
  226. BlockList *string `json:"blockList,optional"`
  227. // 群黑名单
  228. GroupBlockList *string `json:"groupBlockList,optional"`
  229. }
  230. UpdateAgentApiReq {
  231. Id uint64 `json:"id"`
  232. ApiBase *string `json:"apiBase,optional"`
  233. ApiKey *string `json:"apiKey,optional"`
  234. }
  235. TemplateInfo {
  236. Category string `json:"category,optional"`
  237. TemplateCode string `json:"templateCode,optional"`
  238. Name string `json:"name,optional"`
  239. Language string `json:"language,optional"`
  240. TemplateType string `json:"templateType,optional"`
  241. AuditStatus string `json:"auditStatus,optional"`
  242. Components []TemplateComponent `json:"components,optional"`
  243. QualityScore string `json:"qualityScore,optional"`
  244. MessageSendTtlSeconds int `json:"messageSendTtlSeconds,optional"`
  245. Reason string `json:"reason,optional"`
  246. }
  247. TemplateSingleInfo {
  248. Category string `json:"category,optional"`
  249. TemplateCode string `json:"templateCode,optional"`
  250. Name string `json:"name,optional"`
  251. Language string `json:"language,optional"`
  252. TemplateType string `json:"templateType,optional"`
  253. AuditStatus string `json:"auditStatus,optional"`
  254. }
  255. TemplateComponent {
  256. Type string `json:"type,optional"`
  257. Url string `json:"url,optional"`
  258. Text string `json:"text,optional"`
  259. Caption string `json:"caption,optional"`
  260. FileName string `json:"fileName,optional"`
  261. Format string `json:"format,optional"`
  262. Buttons []TemplateButton `json:"buttons,optional"`
  263. ThumbUrl string `json:"thumbUrl,optional"`
  264. Duration int `json:"duration,optional"`
  265. FileType string `json:"fileType,optional"`
  266. Latitude string `json:"latitude,optional"`
  267. Longitude string `json:"longitude,optional"`
  268. LocationName string `json:"locationName,optional"`
  269. LocationAddress string `json:"locationAddress,optional"`
  270. AddSecretRecommendation bool `json:"addSecretRecommendation,optional"`
  271. CodeExpirationMinutes int `json:"codeExpirationMinutes,optional"`
  272. HasExpiration bool `json:"hasExpiration,optional"`
  273. OfferExpirationTimeMs string `json:"offerExpirationTimeMs,optional"`
  274. }
  275. TemplateButton {
  276. Type string `json:"type,optional"`
  277. Text string `json:"text,optional"`
  278. PhoneNumber string `json:"phoneNumber,optional"`
  279. Url string `json:"url,optional"`
  280. UrlType string `json:"urlType,optional"`
  281. SignatureHash string `json:"signatureHash,optional"`
  282. PackageName string `json:"packageName,optional"`
  283. AutofillText string `json:"autofillText,optional"`
  284. IsOptOut bool `json:"isOptOut,optional"`
  285. ExtendAttrs []TemplateExtendAttr `json:"extendAttrs,optional"`
  286. CouponCode string `json:"couponCode,optional"`
  287. FlowId string `json:"flowId,optional"`
  288. FlowAction string `json:"flowAction,optional"`
  289. NavigateScreen string `json:"navigateScreen,optional"`
  290. SupportedApps []TemplateSupportedApp `json:"supportedApps,optional"`
  291. }
  292. TemplateSupportedApp {
  293. SignatureHash string `json:"signatureHash,optional"`
  294. PackageName string `json:"packageName,optional"`
  295. }
  296. TemplateExtendAttr {
  297. NextTemplateCode string `json:"nextTemplateCode,optional"`
  298. NextTemplateName string `json:"nextTemplateName,optional"`
  299. NextLanguageCode string `json:"nextLanguageCode,optional"`
  300. Action string `json:"action,optional"`
  301. IntentCode string `json:"intentCode,optional"`
  302. }
  303. createTemplateReq {
  304. Category string `json:"category"`
  305. TemplateCode string `json:"templateCode"`
  306. Name string `json:"name"`
  307. Language string `json:"language"`
  308. TemplateType string `json:"templateType,optional"`
  309. AllowCategoryChange bool `json:"allowCategoryChange,optional"`
  310. MessageSendTtlSeconds int `json:"messageSendTtlSeconds,optional"`
  311. }
  312. listTemplateReq {
  313. Page int32 `json:"page"`
  314. pageSize int32 `json:"pageSize"`
  315. Name string `json:"name,optional"`
  316. Language string `json:"language,optional"`
  317. AuditStatus string `json:"auditStatus,optional"`
  318. TemplateType string `json:"templateType,optional"`
  319. Code string `json:"code,optional"`
  320. WaId string `json:"waId,optional"`
  321. }
  322. listTemplateResp {
  323. Code int `json:"code"`
  324. Msg string `json:"msg"`
  325. Data ListTemplate `json:"data,omitempty"`
  326. }
  327. ListTemplate {
  328. BaseListInfo
  329. Data []TemplateSingleInfo `json:"data,omitempty"`
  330. }
  331. removeTemplateReq {
  332. TemplateCode string `json:"templateCode,optional"`
  333. TemplateName string `json:"templateName,optional"`
  334. Language string `json:"language"`
  335. TemplateType string `json:"templateType,optional"`
  336. }
  337. editTemplateReq {
  338. Components []TemplateComponent `json:"components,optional"`
  339. Language string `json:"language,optional"`
  340. TemplateCode string `json:"templateCode,optional"`
  341. Category string `json:"category,optional"`
  342. TemplateType string `json:"templateType,optional"`
  343. MessageSendTtlSeconds int `json:"messageSendTtlSeconds,optional"`
  344. TemplateName string `json:"templateName,optional"`
  345. }
  346. getTemplateReq {
  347. TemplateCode string `json:"templateCode,optional"`
  348. Language string `json:"language"`
  349. TemplateType string `json:"templateType,optional"`
  350. TemplateName string `json:"templateName,optional"`
  351. }
  352. getTemplateResp {
  353. Code int `json:"code"`
  354. Msg string `json:"msg"`
  355. Data TemplateSingleInfo `json:"data,omitempty"`
  356. }
  357. )
  358. @server(
  359. jwt: Auth
  360. group: whatsapp
  361. middleware: Authority
  362. )
  363. service Wechat {
  364. // Create whatsapp information | 创建Whatsapp
  365. @handler createWhatsapp
  366. post /whatsapp/create (WhatsappInfo) returns (BaseMsgResp)
  367. // Update whatsapp information | 更新Whatsapp
  368. @handler updateWhatsapp
  369. post /whatsapp/update (WhatsappPhoneInfo) returns (BaseMsgResp)
  370. // Delete whatsapp information | 删除Whatsapp信息
  371. @handler deleteWhatsapp
  372. post /whatsapp/delete (IDsReq) returns (BaseMsgResp)
  373. // Get whatsapp list | 获取Whatsapp列表
  374. @handler getWhatsappList
  375. post /whatsapp/list (WhatsappListReq) returns (WhatsappListResp)
  376. // Get whatsapp by ID | 通过ID获取Whatsapp
  377. @handler getWhatsappById
  378. post /whatsapp (IDReq) returns (WhatsappInfoResp)
  379. // 发送验证码
  380. @handler sendWhatsappCode
  381. post /whatsapp/sendCode (sendCodeReq) returns (BaseMsgResp)
  382. // 提交验证信息
  383. @handler submitWhatsappCode
  384. post /whatsapp/submitCode (submitCodeReq) returns (BaseMsgResp)
  385. // 获取开场白
  386. @handler getAutomation
  387. post /whatsapp/getAutomation (AutomationReq) returns (AutomationResp)
  388. // 编辑开场白
  389. @handler setAutomation
  390. post /whatsapp/setAutomation (SetAutomationReq) returns (BaseMsgResp)
  391. // 获取二维码
  392. @handler getQrcode
  393. post /whatsapp/getQrcode (getQrcodeReq) returns (getQrcodeResp)
  394. // 创建二维码
  395. @handler createQrcode
  396. post /whatsapp/createQrcode (createQrcodeReq) returns (BaseMsgResp)
  397. // 删除二维码
  398. @handler removeQrcode
  399. post /whatsapp/removeQrcode (removeQrcodeReq) returns (BaseMsgResp)
  400. // 修改二维码
  401. @handler updateQrcode
  402. post /whatsapp/updateQrcode (updateQrcodeReq) returns (BaseMsgResp)
  403. // 获取商业信息
  404. @handler getBusinessInfo
  405. post /whatsapp/getBusinessInfo (getBusinessReq) returns (getBusinessResp)
  406. // 设置商业信息
  407. @handler setBusinessInfo
  408. post /whatsapp/setBusinessInfo (setBusinessReq) returns (BaseMsgResp)
  409. // 注册WhatsApp号码
  410. @handler registerPhoneNumber
  411. post /whatsapp/registerPhoneNumber (registerReq) returns (BaseMsgResp)
  412. // 取消注册WhatsApp号码
  413. @handler deregisterPhoneNumber
  414. post /whatsapp/deregisterPhoneNumber (deregisterReq) returns (BaseMsgResp)
  415. // Update whatsapp information | 更新Whatsapp
  416. @handler updateAgent
  417. post /whatsapp/updateAgent (UpdateAgentReq) returns (BaseMsgResp)
  418. // Get whatsapp allow and block list | 获取黑白名单列表
  419. @handler getAllowBlockList
  420. post /whatsapp/getAllowBlockList (IDReq) returns (WhatsappAllowBlockListResp)
  421. // Update whatsapp information | 更新黑白名单
  422. @handler updateAllowAndBlockList
  423. post /whatsapp/updateAllowAndBlockList (UpdateAllowAndBlockListReq) returns (BaseMsgResp)
  424. // Update whatsapp information | 更新黑白名单
  425. @handler updateAgentApi
  426. post /whatsapp/updateAgentApi (UpdateAgentApiReq) returns (BaseMsgResp)
  427. // 创建模板
  428. @handler createWhatsappTemplate
  429. post /whatsapp/createTemplate (createTemplateReq) returns (BaseDataInfo)
  430. // 创建模板
  431. @handler listWhatsappTemplate
  432. post /whatsapp/listTemplate (listTemplateReq) returns (listTemplateResp)
  433. // 删除模板
  434. @handler removeWhatsappTemplate
  435. post /whatsapp/removeTemplate (removeTemplateReq) returns (BaseDataInfo)
  436. // 编辑模板
  437. @handler editWhatsappTemplate
  438. post /whatsapp/editTemplate (editTemplateReq) returns (BaseDataInfo)
  439. // 模板详情
  440. @handler getWhatsappTemplate
  441. post /whatsapp/getTemplate (getTemplateReq) returns (getTemplateResp)
  442. }