whatsapp.go 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. package aliyun
  2. import (
  3. cams20200606 "github.com/alibabacloud-go/cams-20200606/v2/client"
  4. openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  5. "github.com/alibabacloud-go/tea/tea"
  6. )
  7. const (
  8. AccessKeyId string = "LTAI5tSJwCQyuaxXR3UxfnWw"
  9. AccessKeySecret string = "0pv4xhSPJv9IPSxrkB52FspJk27W7V"
  10. RegionId string = "cams.ap-southeast-1.aliyuncs.com"
  11. )
  12. // Description:
  13. // 使用AK&SK初始化账号Client
  14. // @return Client
  15. // @throws Exception
  16. func CreateCamsClient() (_result *cams20200606.Client, _err error) {
  17. // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  18. // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378661.html。
  19. config := &openapi.Config{
  20. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
  21. AccessKeyId: tea.String(AccessKeyId),
  22. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  23. AccessKeySecret: tea.String(AccessKeySecret),
  24. }
  25. // Endpoint 请参考 https://api.aliyun.com/product/cams
  26. config.Endpoint = tea.String(RegionId)
  27. _result = &cams20200606.Client{}
  28. _result, _err = cams20200606.NewClient(config)
  29. return _result, _err
  30. }
  31. // GetCamsAppId 获取 AppId
  32. // "LTAI5tSJwCQyuaxXR3UxfnWw", "0pv4xhSPJv9IPSxrkB52FspJk27W7V" "cams.ap-southeast-1.aliyuncs.com"
  33. func GetCamsAppId() (string, error) {
  34. client, _err := CreateCamsClient()
  35. if _err != nil {
  36. return "", _err
  37. }
  38. request := &cams20200606.IsvGetAppIdRequest{
  39. Type: tea.String("WHATSAPP"),
  40. }
  41. isvResponse, _err := client.IsvGetAppId(request)
  42. if _err != nil {
  43. return "", _err
  44. }
  45. return *isvResponse.Body.AppId, nil
  46. }
  47. // GetAutomation 获取号码欢迎消息、开场白和命令
  48. func GetAutomation(custSpaceId, phone string) (*cams20200606.GetConversationalAutomationResponse, error) {
  49. client, _err := CreateCamsClient()
  50. if _err != nil {
  51. return nil, _err
  52. }
  53. request := &cams20200606.GetConversationalAutomationRequest{
  54. CustSpaceId: tea.String(custSpaceId),
  55. PhoneNumber: tea.String(phone),
  56. }
  57. response, _err := client.GetConversationalAutomation(request)
  58. if _err != nil {
  59. return nil, _err
  60. }
  61. return response, nil
  62. }
  63. // SetAutomation 设置号码欢迎消息、开场白和命令
  64. func SetAutomation(custSpaceId, phone string, prompts []string) (*cams20200606.UpdateConversationalAutomationResponse, error) {
  65. client, _err := CreateCamsClient()
  66. if _err != nil {
  67. return nil, _err
  68. }
  69. tmpPrompts := make([]*string, 0)
  70. for _, v := range prompts {
  71. tmpPrompts = append(tmpPrompts, &v)
  72. }
  73. request := &cams20200606.UpdateConversationalAutomationRequest{
  74. CustSpaceId: tea.String(custSpaceId),
  75. PhoneNumber: tea.String(phone),
  76. Prompts: tmpPrompts,
  77. }
  78. response, _err := client.UpdateConversationalAutomation(request)
  79. if _err != nil {
  80. return nil, _err
  81. }
  82. return response, nil
  83. }
  84. // AddCamsPhoneNumber 添加WhatsApp号码
  85. func AddCamsPhoneNumber(phone, cc, custSpaceId, verifiedName string) (*cams20200606.AddChatappPhoneNumberResponse, error) {
  86. client, _err := CreateCamsClient()
  87. if _err != nil {
  88. return nil, _err
  89. }
  90. request := &cams20200606.AddChatappPhoneNumberRequest{
  91. PhoneNumber: tea.String(phone),
  92. Cc: tea.String(cc),
  93. CustSpaceId: tea.String(custSpaceId),
  94. VerifiedName: tea.String(verifiedName),
  95. }
  96. response, _err := client.AddChatappPhoneNumber(request)
  97. if _err != nil {
  98. return nil, _err
  99. }
  100. return response, nil
  101. }
  102. // SendCamsCode 发送验证码
  103. func SendCamsCode(phone, custSpaceId, method, locale string) (*cams20200606.GetChatappVerifyCodeResponse, error) {
  104. client, _err := CreateCamsClient()
  105. if _err != nil {
  106. return nil, _err
  107. }
  108. request := &cams20200606.GetChatappVerifyCodeRequest{
  109. PhoneNumber: tea.String(phone),
  110. CustSpaceId: tea.String(custSpaceId),
  111. Method: tea.String(method),
  112. Locale: tea.String(locale),
  113. }
  114. response, _err := client.GetChatappVerifyCode(request)
  115. if _err != nil {
  116. return nil, _err
  117. }
  118. return response, nil
  119. }
  120. // SubmitCamsCode 提交验证信息
  121. func SubmitCamsCode(phone, code, custSpaceId string) (*cams20200606.ChatappVerifyAndRegisterResponse, error) {
  122. client, _err := CreateCamsClient()
  123. if _err != nil {
  124. return nil, _err
  125. }
  126. request := &cams20200606.ChatappVerifyAndRegisterRequest{
  127. PhoneNumber: tea.String(phone),
  128. VerifyCode: tea.String(code),
  129. CustSpaceId: tea.String(custSpaceId),
  130. }
  131. response, _err := client.ChatappVerifyAndRegister(request)
  132. if _err != nil {
  133. return nil, _err
  134. }
  135. return response, nil
  136. }
  137. // GetCamsQrcode 获取二维码列表
  138. func GetCamsQrcode(phone, custSpaceId string) (*cams20200606.ListPhoneMessageQrdlResponse, error) {
  139. client, _err := CreateCamsClient()
  140. if _err != nil {
  141. return nil, _err
  142. }
  143. request := &cams20200606.ListPhoneMessageQrdlRequest{
  144. PhoneNumber: tea.String(phone),
  145. CustSpaceId: tea.String(custSpaceId),
  146. }
  147. response, _err := client.ListPhoneMessageQrdl(request)
  148. if _err != nil {
  149. return nil, _err
  150. }
  151. return response, nil
  152. }
  153. // CreateCamsQrcode 创建二维码
  154. func CreateCamsQrcode(phone, custSpaceId, generateQrImage, prefilledMessage string) (*cams20200606.CreatePhoneMessageQrdlResponse, error) {
  155. client, _err := CreateCamsClient()
  156. if _err != nil {
  157. return nil, _err
  158. }
  159. request := &cams20200606.CreatePhoneMessageQrdlRequest{
  160. PhoneNumber: tea.String(phone),
  161. CustSpaceId: tea.String(custSpaceId),
  162. GenerateQrImage: tea.String(generateQrImage),
  163. PrefilledMessage: tea.String(prefilledMessage),
  164. }
  165. response, _err := client.CreatePhoneMessageQrdl(request)
  166. if _err != nil {
  167. return nil, _err
  168. }
  169. return response, nil
  170. }
  171. // UpdateCamsQrcode 修改二维码
  172. func UpdateCamsQrcode(phone, custSpaceId, generateQrImage, prefilledMessag, qrdlCode string) (*cams20200606.UpdatePhoneMessageQrdlResponse, error) {
  173. client, _err := CreateCamsClient()
  174. if _err != nil {
  175. return nil, _err
  176. }
  177. request := &cams20200606.UpdatePhoneMessageQrdlRequest{
  178. PhoneNumber: tea.String(phone),
  179. CustSpaceId: tea.String(custSpaceId),
  180. GenerateQrImage: tea.String(generateQrImage),
  181. PrefilledMessage: tea.String(prefilledMessag),
  182. QrdlCode: tea.String(qrdlCode),
  183. }
  184. response, _err := client.UpdatePhoneMessageQrdl(request)
  185. if _err != nil {
  186. return nil, _err
  187. }
  188. return response, nil
  189. }
  190. // RemoveCamsQrcode 删除二维码
  191. func RemoveCamsQrcode(phone, custSpaceId, qrdlCode string) (*cams20200606.DeletePhoneMessageQrdlResponse, error) {
  192. client, _err := CreateCamsClient()
  193. if _err != nil {
  194. return nil, _err
  195. }
  196. request := &cams20200606.DeletePhoneMessageQrdlRequest{
  197. PhoneNumber: tea.String(phone),
  198. CustSpaceId: tea.String(custSpaceId),
  199. QrdlCode: tea.String(qrdlCode),
  200. }
  201. response, _err := client.DeletePhoneMessageQrdl(request)
  202. if _err != nil {
  203. return nil, _err
  204. }
  205. return response, nil
  206. }
  207. // GetCamsBusiness 获取商业信息
  208. func GetCamsBusiness(phone, custSpaceId string) (*cams20200606.QueryPhoneBusinessProfileResponse, error) {
  209. client, _err := CreateCamsClient()
  210. if _err != nil {
  211. return nil, _err
  212. }
  213. request := &cams20200606.QueryPhoneBusinessProfileRequest{
  214. PhoneNumber: tea.String(phone),
  215. CustSpaceId: tea.String(custSpaceId),
  216. }
  217. response, _err := client.QueryPhoneBusinessProfile(request)
  218. if _err != nil {
  219. return nil, _err
  220. }
  221. return response, nil
  222. }
  223. // SetCamsBusiness 获取商业信息
  224. func SetCamsBusiness(phone, custSpaceId, address, description, vertical, email, profilePicUrl, about string, websites []*string) (*cams20200606.ModifyPhoneBusinessProfileResponse, error) {
  225. client, _err := CreateCamsClient()
  226. if _err != nil {
  227. return nil, _err
  228. }
  229. request := &cams20200606.ModifyPhoneBusinessProfileRequest{
  230. PhoneNumber: tea.String(phone),
  231. CustSpaceId: tea.String(custSpaceId),
  232. Address: tea.String(address),
  233. Description: tea.String(description),
  234. Vertical: tea.String(vertical),
  235. Email: tea.String(email),
  236. ProfilePictureUrl: tea.String(profilePicUrl),
  237. About: tea.String(about),
  238. Websites: websites,
  239. }
  240. response, _err := client.ModifyPhoneBusinessProfile(request)
  241. if _err != nil {
  242. return nil, _err
  243. }
  244. return response, nil
  245. }