pushplus(推送加) 文档中心
pushplus文档
生态产品
常用工具
智能助手
官网
pushplus文档
生态产品
常用工具
智能助手
官网
  • 简介

    • 介绍
    • 服务协议
    • 用户隐私协议
    • 联系我们
  • 使用说明

    • 一对一消息
    • 一对多消息
    • 好友消息
    • 积分群组
    • 发邮件来推送消息
    • 文本命令
    • 图片服务
    • 会员功能
    • 收/发消息设置
    • 系统功能额度
    • 实名认证说明
    • 预处理信息配置
    • 消息规则
  • API文档

    • 消息接口文档
    • 开放接口文档
    • 消息回调说明
    • 返回码说明
    • SDK说明
    • Demo代码
    • pushplus MCP Server
    • pushplus Skill 使用说明
  • 渠道配置

    • 发送渠道说明
    • 绑定自己的微信服务号
    • APP渠道使用说明
    • 浏览器插件使用教程
    • 桌面应用程序使用教程
    • webhook渠道配置
    • 微信ClawBot渠道使用说明
    • 新消息ClawBot渠道使用说明
    • QQ机器人渠道使用说明
    • 企业微信应用配置
    • 邮件渠道配置
    • 短信渠道配置
    • 语音渠道配置
  • 消息模板

    • 消息模板说明
    • 阿里云监控
    • Jenkins插件
    • 路由器插件
    • 支付成功通知模板
  • 扩展应用

    • xxl-job推送设置
    • 推送到企业微信机器人
    • 推送到钉钉机器人教程
    • 推送到飞书机器人教程
    • 通过腾讯轻联实现发短信
    • 通过集简云发送企业微信消息
    • 调用IFTTT的webhook
    • 自定义webhook配置
    • 使用pushplus接收短信内容
    • 使用网页侦探+pushplus监控黄金价格
  • 常见问题

    • 常见问题
    • APP上没有通知弹框
    • Get请求导致的问题
    • 实名认证相关问题
    • 用户token和消息token有什么区别
    • 发送消息接口限制
    • 微信消息模板是否可以自定义
    • 收不到消息如何排查
    • 才收到几条消息却被限制发送了
    • IP被禁止访问原因
    • 如何解封账号
    • 一对多消息为什么只有我自己收到
    • 提示无用户接收消息
    • 发送消息有延迟
    • 如何在公众号中显示推送内容
    • 菜单上的激活消息有什么用
    • 是否支持发送图片
    • 消息内容中如何换行
    • 用户信息状态不合法
    • 接口是否支持https
    • json模板如何正确展示
    • pushplus官网
    • 如何注销账户
  • 软件接入

    • 软件接入
    • 宝塔面板
    • 飞书多维表格
    • 金数据
    • 聚宽 JoinQuant
    • 扣子
    • 雷池 WAF
    • 哪吒监控
    • 青龙面板
    • 群晖 Synology DSM
    • 腾讯 CodeBuddy
    • 通义灵码
    • Activepieces
    • Airtable
    • AMP(Sourcegraph)
    • Antigravity(Google)
    • Apache Airflow
    • Apprise
    • Argo CD
    • Audiobookshelf
    • Bazarr
    • beets
    • Better Stack
    • BirdNET-Pi
    • borgmatic
    • camply
    • changedetection.io
    • CircleCI
    • Claude Code
    • Cleanuparr
    • Cline
    • Cloudflare
    • Cursor
    • Cyberdrop-DL
    • Datadog
    • ddns-go
    • Devin Desktop
    • Dify
    • dockcheck
    • Docker Hub
    • Droid(Factory)
    • Duplicati
    • Elastic
    • Embykeeper
    • EMQX
    • ESPHome
    • FastGPT
    • FileFlows
    • free-games-claimer
    • Freqtrade
    • Gemini CLI
    • Gitea
    • Gitee
    • GitHub Actions
    • GitHub Copilot(VS Code)
    • GitLab
    • Google Apps Script
    • Google Forms
    • Goose
    • Grafana
    • Healthchecks
    • Home Assistant
    • Huginn
    • IFTTT
    • InvenTree
    • iOS 快捷指令
    • Jellyfin
    • Jellyseerr / Overseerr
    • Jenkins
    • Jira
    • Kilo Code
    • Kiro CLI
    • LazyLibrarian
    • Lidarr
    • Local Deep Research
    • MAA 明日方舟助手
    • Mailrise
    • Make
    • mcp-server-notify
    • Mealie
    • Microsoft Power Automate
    • Moonraker
    • mqttwarn
    • MS-Rewards-Farmer
    • n8n
    • NetAlertX
    • Netdata
    • Nextcloud
    • Node-RED
    • Notion
    • Nous Research Agent
    • Obico
    • OpenAI Codex CLI
    • OpenClaw
    • OpenCode
    • Pinchflat
    • Pipedream
    • Plombery
    • Prefect
    • Prowlarr
    • Proxmox VE
    • qbit_manage
    • qBittorrent
    • Qoder
    • Readarr
    • Robot Framework
    • Roo Code
    • Sentry
    • Shopify
    • SmsForwarder
    • Sonarr / Radarr
    • Speedtest Tracker
    • Stripe
    • Tasker
    • Tautulli
    • tgtg-scanner
    • The Lounge
    • ThingsBoard
    • TradingView
    • Trae
    • Transmission
    • TubeArchivist
    • Typeform
    • unifi-protect-backup
    • Uptime Kuma
    • UptimeRobot
    • Vercel
    • VS Code(Agent 模式)
    • Watchtower
    • WordPress
    • Zabbix
    • Zapier
    • Zed

Demo代码

    推荐优先使用官方 pushplus SDK,而不是自行编写 HTTP 请求代码。SDK 已封装发送频率控制、开放接口令牌、回调等常见场景,可降低开发成本和出错概率。以下 Demo 代码仅供学习参考,帮助理解接口调用方式。

在线测试页面

可以访问https://api.pushplus.plus/,在线的测试接口。也可以直接使用页面上生成的代码示例,支持多种语言。

Shell代码示例

使用Shell脚本演示具体如何发送消息

  • 获取自己的token。
    可到pushplus的官网登录获取下自己的token。pushplus的网址是:http://www.pushplus.plus
  • 确保服务器中已安装curl和jq两个工具。curl用于发送http请求,jq用于解析json格式。
  • POST请求方式代码
#!/bin/bash

#pushplus的相关参数
TOKEN="你的token"
TITLE="测试工单"
CONTENT="消息的内容<br/><img src='http://www.pushplus.plus/doc/img/push.png' />"
URL="https://www.pushplus.plus/send/"

# 定义文件用于记录是否已经发送过通知
SENT_FLAG_FILE="sent.flag"

# 判断文件是否存在
if [ -e "$SENT_FLAG_FILE" ]; then
    # 获取文件的创建时间(秒级时间戳)
    file_creation_time=$(stat -c %Y "$SENT_FLAG_FILE")

    # 获取第二天的0点时间(秒级时间戳)
    next_day_start_time=$(date -d "tomorrow" +%s)

    # 判断文件的创建时间是否大于等于第二天的0点时间
    if [ "$file_creation_time" -ge "$next_day_start_time" ]; then
        # 删除标志文件
        rm "$SENT_FLAG_FILE"
    fi
fi

# 检查是否已经发送过通知
if [ ! -e "$SENT_FLAG_FILE" ]; then
    # 发送HTTP POST请求
    response=$(curl -s -X POST -d "token=$TOKEN&title=$TITLE&content=$CONTENT" "$URL")

    # 解析响应JSON,您需要根据实际情况来提取返回码
    code=$(echo "$response" | jq -r '.code')
    echo $response

    # 判断返回码是否为900(用户账号使用受限)
    if [ "$code" -eq 900 ]; then
        # 创建标志文件,表示已经发送过通知
        touch "$SENT_FLAG_FILE"
    fi
fi
  • 说明
    示例用使用sent.flag文件来判断是否超过正常请求次数,以防止超额后还继续请求造成封号。您可以自行选择使用其他方式来替代判断。

python代码示例

使用python语言演示具体如何发送消息

  • 获取自己的token。
    可到pushplus的官网登录获取下自己的token。pushplus的网址是:http://www.pushplus.plus
  • GET请求方式代码
# encoding:utf-8
import requests
token = '你的token' #在pushplus网站中可以找到
title= '标题' #改成你要的标题内容
content ='内容' #改成你要的正文内容
url = 'http://www.pushplus.plus/send?token='+token+'&title='+title+'&content='+content
requests.get(url)

  • POST请求方式代码
# encoding:utf-8
import requests
import json
token = '你的token' #在pushpush网站中可以找到
title= '标题' #改成你要的标题内容
content ='内容' #改成你要的正文内容
url = 'http://www.pushplus.plus/send'
data = {
    "token":token,
    "title":title,
    "content":content
}
body=json.dumps(data).encode(encoding='utf-8')
headers = {'Content-Type':'application/json'}
requests.post(url,data=body,headers=headers)
  • 运行后效果
    效果1

效果2

  • 说明
    更多参数用法请查看pushplus接口文档

java代码示例

考虑请求次数限制,根据返回码做了是否继续请求的判断,防止账号被封

  • GET请求方式代码
    使用的hutools工具类,自定义了redis操作类,ResultT请求响应对象。正式使用的时候改成自己的封装的。
//写在SpringBoot项目中的测试类,演示通过get方式发送消息
@SpringBootTest
public class PushControllerTest {
    //自己写的redis操作类
    @Autowired
    private RedisService redisService;

    @Test
    public void send(){
        //redis的key,可以自己随便命名
        String redisKey= "pushplus:canSend";
        //读取redis里面的值,是否为1,不为1的才能请求pushplus接口
        Integer limit = redisService.get(redisKey)!= null ? (Integer) redisService.get(redisKey):0;
        if(limit!=1){
            String token= "您的token"; //您的token
            String title= "标题";  //消息的标题
            String content= "内容<br/><img src='http://www.pushplus.plus/doc/img/push.png' />";  //消息的内容,包含文字、换行和图片
            String url = "https://www.pushplus.plus/send?title="+ title +"&content="+ content +"&token=" + token;

            //服务器发送Get请求,接收响应内容
            String response = HttpUtil.get(url);
            //把返回的字符串结果变成对象
            ResultT resultT = JSONUtil.toBean(response,ResultT.class);

            //判断返回码是否为900(用户账号使用受限),如果是就修改redis对象,下次请求不在发送
            if(resultT.getCode()==900){
                //使用redis缓存做全局判断,设置到第二天凌点自动失效
                redisService.set(redisKey,1, TimeUtil.getSecondsNextEarlyMorning());
            }
        }
    }
}
  • POST请求方式代码
public class PushControllerTest {
    //自己写的redis操作类
    @Autowired
    private RedisService redisService;

    @Test
    public void send(){
        //redis的key,可以自己随便命名
        String redisKey= "pushplus:canSend";
        //读取redis里面的值,是否为1,不为1的才能请求pushplus接口
        Integer limit = redisService.get(redisKey)!= null ? (Integer) redisService.get(redisKey):0;
        if(limit!=1){
            String token= "您的token"; //您的token
            String title= "标题";  //消息的标题
            String content= "内容<br/><img src='http://www.pushplus.plus/doc/img/push.png' />";  //消息的内容
            String url = "https://www.pushplus.plus/send/";

            Map<String,Object> map = new HashMap<>();
            map.put("token",token);
            map.put("title",title);
            map.put("content",content);

            //服务器发送POST请求,接收响应内容
            String response = HttpUtil.post(url,map);
            //把返回的字符串结果变成对象
            ResultT resultT = JSONUtil.toBean(response,ResultT.class);

            //判断返回码是否为900(用户账号使用受限),如果是就修改redis对象,下次请求不在发送
            if(resultT.getCode()==900){
                //使用redis缓存做全局判断,设置到第二天凌点自动失效
                redisService.set(redisKey,1, TimeUtil.getSecondsNextEarlyMorning());
            }
        }
    }
}

  • 说明
    示例用使用redis来做全局变量判断是否超过正常请求次数,以防止超额后还继续请求造成封号。您可以自行选择使用其他方式(如memoryCache)来替代全局判断。
更新时间: 2026/7/7 16:41
上一页
SDK说明
下一页
pushplus MCP Server