package weapp const ( apiCreateActivityID = "/cgi-bin/message/wxopen/activityid/create" apiSetUpdatableMsg = "/cgi-bin/message/wxopen/updatablemsg/send" ) // CreateActivityIDResponse 动态消息 type CreateActivityIDResponse struct { CommonError ActivityID string `json:"activity_id"` // 动态消息的 ID ExpirationTime uint `json:"expiration_time"` // activity_id 的过期时间戳。默认24小时后过期。 } // CreateActivityID 创建被分享动态消息的 activity_id。 // token 接口调用凭证 func CreateActivityID(token string) (*CreateActivityIDResponse, error) { api := baseURL + apiCreateActivityID return createActivityID(api, token) } func createActivityID(api, token string) (*CreateActivityIDResponse, error) { api, err := tokenAPI(api, token) if err != nil { return nil, err } res := new(CreateActivityIDResponse) if err := getJSON(api, res); err != nil { return nil, err } return res, nil } // UpdatableMsgTempInfo 动态消息对应的模板信息 type UpdatableMsgTempInfo struct { ParameterList []UpdatableMsgParameter `json:"parameter_list"` // 模板中需要修改的参数列表 } // UpdatableMsgParameter 参数 // member_count target_state = 0 时必填,文字内容模板中 member_count 的值 // room_limit target_state = 0 时必填,文字内容模板中 room_limit 的值 // path target_state = 1 时必填,点击「进入」启动小程序时使用的路径。 // 对于小游戏,没有页面的概念,可以用于传递查询字符串(query),如 "?foo=bar" // version_type target_state = 1 时必填,点击「进入」启动小程序时使用的版本。 // 有效参数值为:develop(开发版),trial(体验版),release(正式版) type UpdatableMsgParameter struct { Name UpdatableMsgParamName `json:"name"` // 要修改的参数名 Value string `json:"value"` // 修改后的参数值 } // UpdatableMsgTargetState 动态消息修改后的状态 type UpdatableMsgTargetState = uint8 // 动态消息状态 const ( UpdatableMsgJoining UpdatableMsgTargetState = iota // 未开始 UpdatableMsgStarted // 已开始 ) // UpdatableMsgParamName 参数 name 的合法值 type UpdatableMsgParamName = string // 动态消息状态 const ( UpdatableMsgParamMemberCount UpdatableMsgParamName = "member_count" // target_state = 0 时必填,文字内容模板中 member_count 的值 UpdatableMsgParamRoomLimit = "room_limit" // target_state = 0 时必填,文字内容模板中 room_limit 的值 UpdatableMsgParamPath = "path" // target_state = 1 时必填,点击「进入」启动小程序时使用的路径。 对于小游戏,没有页面的概念,可以用于传递查询字符串(query),如 "?foo=bar" UpdatableMsgParamVersionType = "version_type" // target_state = 1 时必填,点击「进入」启动小程序时使用的版本。有效参数值为:develop(开发版),trial(体验版),release(正式版) ) // UpdatableMsgSetter 动态消息 type UpdatableMsgSetter struct { ActivityID string `json:"activity_id"` // 动态消息的 ID,通过 updatableMessage.createActivityId 接口获取 TargetState UpdatableMsgTargetState `json:"target_state"` // 动态消息修改后的状态(具体含义见后文) TemplateInfo UpdatableMsgTempInfo `json:"template_info"` // 动态消息对应的模板信息 } // Set 修改被分享的动态消息。 // accessToken 接口调用凭证 func (setter *UpdatableMsgSetter) Set(token string) (*CommonError, error) { api := baseURL + apiSetUpdatableMsg return setter.set(api, token) } func (setter *UpdatableMsgSetter) set(api, token string) (*CommonError, error) { api, err := tokenAPI(api, token) if err != nil { return nil, err } res := new(CommonError) if err := postJSON(api, setter, res); err != nil { return nil, err } return res, nil }