package rtc import ( "fmt" "gowebsocket/common" "gowebsocket/controllers" "time" "github.com/gin-gonic/gin" "github.com/qiniu/api.v7/v7/auth" ) var manager *Manager func init() { accessKey := "dzumJl3gfsMSR3fvfABL4e0kDpo6FJmrlcuTu8TF" secretKey := "aqWegU2o8tTCe0JtIVfMDdOjC3-jvuv2eWFvKQOm" fmt.Println("accessKey: secretKey: ", accessKey, secretKey) mac := auth.New(accessKey, secretKey) manager = NewManager(mac) } // TODO: 获取直播流地址 func GetRoomToken(c *gin.Context) { if o := c.Request.Header.Get("Origin"); o != "" { c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Allow-Methods", "GET,POST,HEAD,PUT,DELETE,OPTIONS") c.Writer.Header().Set("Access-Control-Expose-Headers", "Server,Range,Content-Length,Content-Range") c.Writer.Header().Set("Access-Control-Allow-Headers", "Origin,Range,Accept-Encoding,Referer,Cache-Control,X-Proxy-Authorization,X-Requested-With,Content-Type") } q := c.Request.URL.Query() appID, roomName, userID, Permission := q.Get("app_id"), q.Get("room_name"), q.Get("user_id"), q.Get("permission") roomAccess := RoomAccess{ AppID: appID, RoomName: roomName, UserID: userID, ExpireAt: time.Now().Unix() + 3600, Permission: Permission, } token, _ := manager.GetRoomToken(roomAccess) url := fmt.Sprintf("https://rtc.qiniuapi.com/v3/apps/%v/rooms/%v/auth?user=%v&token=%v", roomAccess.AppID, roomAccess.RoomName, roomAccess.UserID, token) fmt.Println("url: ", url) data := gin.H{ "token": token, } controllers.Response(c, common.OK, "", data) // url := fmt.Sprintf("https://rtc.qiniuapi.com/v3/apps/%v/rooms/%v/auth?user=%v&token=%v", roomAccess.AppID, roomAccess.RoomName, roomAccess.UserID, token) }