package getui
import (
"encoding/json"
"gugegin/tools"
"log"
"strings"
)
//【toSingle】执行cid单推
func TestSingle(cid string) {
cids := []string{cid}
rd := tools.RandomStr(5)
PushSingle(cids, "单推标题"+rd, "单推内容"+rd)
}
//推送给一个用户,执行一次
func PushSingle(cids []string, title string, body string) {
url := BASEURL + "/push/single/cid"
aud := Audience{
Cid: cids,
}
//Click_type
//点击通知后续动作,
//目前支持以下后续动作,
//intent:打开应用内特定页面,
//url:打开网页地址,
//payload:自定义消息内容启动应用,
//payload_custom:自定义消息内容不启动应用,
//startapp:打开应用首页,
//none:纯通知,无后续动作
noti := Notification{
Title: title,
Body: body,
Click_type: "none",
}
pus := Push_message{
Notification: noti,
}
signe := Single{
Request_id: tools.RandomStr(30),
Audience: aud,
Push_message: pus,
}
reqBody := strings.ToLower(tools.StructToJSON(signe))
log.Println("--------PushSingle----reqBody------", reqBody)
s := tools.ClientPost2(url, strings.NewReader(reqBody), TokenValue)
log.Println("--------PushSingle----------", s)
sResult := PushResult{}
err := json.Unmarshal([]byte(s), &sResult)
if err != nil {
log.Println(err)
}
log.Println("--------PushSingle-----code-----", sResult.Code)
if sResult.Code == 0 {
log.Println("推送成功")
}
if sResult.Code == 10001 {
log.Println("--------PushSingle----token过期或无效------")
//token过期
ObtainToken()
PushSingle(cids, title, body)
}
log.Println("--------PushSingle-----msg-----", sResult.Msg)
}
个推单推
原创
©著作权归作者所有:来自51CTO博客作者wx62cbd84cdb743的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
ffmpeg推流flv到rtmp
c++音视频开发教程
音视频开发 c++音视频 rtmp 音视频编解码 -
个推
(3)别名推送:客户端绑定用户别名,向具体的单个用户推送;
推送 客户端 数据 -
推特中根据推文的id查找推文
在推特中,当我们浏览时,一条普通的推文的页面...
twitter 字段 后台服务器 用户名 -
NGINX推流 一推多用 nginx推流延迟
张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护。Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的研究;曾为 ngx_lua 贡献源码,在 Nginx、ngx_lua、CDN 性能优化、日志优化方面有较为深入的研究。 笔者曾今在更新 Nginx 服务的过程中发现旧的 Nginx wor
NGINX推流 一推多用 nginx 超时时间 socket timeout是什么引起的 Nginx lua