DescribeMusic.go 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. ame "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ame/v20190916"
  9. )
  10. func main() {
  11. // 必要步骤:
  12. // 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
  13. // 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
  14. // 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
  15. // 以免泄露密钥对危及你的财产安全。
  16. credential := common.NewCredential(
  17. "",
  18. "",
  19. )
  20. cpf := profile.NewClientProfile()
  21. cpf.HttpProfile.ReqMethod = "POST"
  22. cpf.HttpProfile.ReqTimeout = 5
  23. cpf.SignMethod = "HmacSHA1"
  24. client, _ := ame.NewClient(credential, "ap-guangzhou", cpf)
  25. // 获取分类
  26. request := ame.NewDescribeStationsRequest()
  27. request.Limit = common.Uint64Ptr(30)
  28. request.Offset = common.Uint64Ptr(0)
  29. // get response structure
  30. response, err := client.DescribeStations(request)
  31. // API errors
  32. if _, ok := err.(*errors.TencentCloudSDKError); ok {
  33. fmt.Printf("An API error has returned: %s", err)
  34. return
  35. }
  36. // unexpected errors
  37. if err != nil {
  38. panic(err)
  39. }
  40. b, _ := json.Marshal(response.Response)
  41. fmt.Printf("%s\n", b)
  42. // 获取分类音乐列表
  43. itemReq := ame.NewDescribeItemsRequest()
  44. itemReq.Limit = common.Uint64Ptr(10)
  45. // Offset计算方法:Offset = Offset + Limit
  46. itemReq.Offset = common.Uint64Ptr(0)
  47. // 这里只是例子,取其中一个CategoryID
  48. itemReq.CategoryId = response.Response.Stations[0].CategoryID
  49. itemRsp, err := client.DescribeItems(itemReq)
  50. if err != nil {
  51. panic(err)
  52. }
  53. b, _ = json.Marshal(itemRsp.Response)
  54. fmt.Printf("%s\n", b)
  55. // 歌曲ID,这里取一个做示例
  56. itemID := itemRsp.Response.Items[0].ItemID
  57. // 获取歌曲信息
  58. musicReq := ame.NewDescribeMusicRequest()
  59. // 这里只是例子,取其中一个ItemID
  60. musicReq.ItemId = itemID
  61. // 在应用前端播放音乐C端用户的唯一标识。无需是账户信息,用户唯一标识即可。
  62. userId := "xcd323dasd1"
  63. musicReq.IdentityId = common.StringPtr(userId)
  64. musicRsp, err := client.DescribeMusic(musicReq)
  65. if err != nil {
  66. panic(err)
  67. }
  68. // 获取音乐播放路径,前提是您已经在腾讯云AME控制台添加过域名
  69. // 添加域名:https://console.cloud.tencent.com/ame/acc
  70. println(*musicRsp.Response.Music.FullUrl)
  71. // 获取歌词信息
  72. lyricReq := ame.NewDescribeLyricRequest()
  73. lyricReq.ItemId = itemID
  74. lyricRsp, err := client.DescribeLyric(lyricReq)
  75. if err != nil {
  76. panic(err)
  77. }
  78. b, _ = json.Marshal(lyricRsp.Response)
  79. fmt.Printf("%s\n", b)
  80. }