SendStatusStatistics.go 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
  6. "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
  7. "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
  8. sms "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms/v20190711" //引入sms
  9. )
  10. func main() {
  11. /* 必要步骤:
  12. * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
  13. * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
  14. * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
  15. * 以免泄露密钥对危及你的财产安全。
  16. * CAM密匙查询: https://console.cloud.tencent.com/cam/capi*/
  17. credential := common.NewCredential(
  18. // os.Getenv("TENCENTCLOUD_SECRET_ID"),
  19. // os.Getenv("TENCENTCLOUD_SECRET_KEY"),
  20. "xxx",
  21. "xxx",
  22. )
  23. /* 非必要步骤:
  24. * 实例化一个客户端配置对象,可以指定超时时间等配置 */
  25. cpf := profile.NewClientProfile()
  26. /* SDK默认使用POST方法。
  27. * 如果你一定要使用GET方法,可以在这里设置。GET方法无法处理一些较大的请求 */
  28. cpf.HttpProfile.ReqMethod = "POST"
  29. /* SDK有默认的超时时间,非必要请不要进行调整
  30. * 如有需要请在代码中查阅以获取最新的默认值 */
  31. //cpf.HttpProfile.ReqTimeout = 5
  32. /* SDK会自动指定域名。通常是不需要特地指定域名的,但是如果你访问的是金融区的服务
  33. * 则必须手动指定域名,例如sms的上海金融区域名: sms.ap-shanghai-fsi.tencentcloudapi.com */
  34. cpf.HttpProfile.Endpoint = "sms.tencentcloudapi.com"
  35. /* SDK默认用TC3-HMAC-SHA256进行签名
  36. * 非必要请不要修改这个字段 */
  37. cpf.SignMethod = "HmacSHA1"
  38. /* 实例化要请求产品(以sms为例)的client对象
  39. * 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 */
  40. client, _ := sms.NewClient(credential, "ap-guangzhou", cpf)
  41. /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
  42. * 你可以直接查询SDK源码确定接口有哪些属性可以设置
  43. * 属性可能是基本类型,也可能引用了另一个数据结构
  44. * 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 */
  45. request := sms.NewSendStatusStatisticsRequest()
  46. /* 基本类型的设置:
  47. * SDK采用的是指针风格指定参数,即使对于基本类型你也需要用指针来对参数赋值。
  48. * SDK提供对基本类型的指针引用封装函数
  49. * 帮助链接:
  50. * 短信控制台: https://console.cloud.tencent.com/sms/smslist
  51. * sms helper: https://cloud.tencent.com/document/product/382/3773 */
  52. /* 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 */
  53. request.SmsSdkAppid = common.StringPtr("1400787878")
  54. /* 拉取最大条数,最多100条 */
  55. request.Limit = common.Uint64Ptr(0)
  56. /* 偏移量 注:目前固定设置为0 */
  57. request.Offset = common.Uint64Ptr(0)
  58. /* 开始时间,yyyymmddhh 需要拉取的起始时间,精确到小时 */
  59. request.StartDateTime = common.Uint64Ptr(2019122400)
  60. /* 结束时间,yyyymmddhh 需要拉取的截止时间,精确到小时
  61. * 注:EndDataTime 必须大于 StartDateTime */
  62. request.EndDataTime = common.Uint64Ptr(2019122523)
  63. // 通过client对象调用想要访问的接口,需要传入请求对象
  64. response, err := client.SendStatusStatistics(request)
  65. // 处理异常
  66. if _, ok := err.(*errors.TencentCloudSDKError); ok {
  67. fmt.Printf("An API error has returned: %s", err)
  68. return
  69. }
  70. // 非SDK异常,直接失败。实际代码中可以加入其他的处理。
  71. if err != nil {
  72. panic(err)
  73. }
  74. b, _ := json.Marshal(response.Response)
  75. // 打印返回的json字符串
  76. fmt.Printf("%s", b)
  77. }