notify4g

module
v0.0.0-...-05e418a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2021 License: Apache-2.0

README

notify4g

notify api for sms/voice/qywx/mail/dingtalk

build

for release:

  1. ./gb.py for local
  2. ./gb.py -t linux for linux version
$ ./gb.py -h
  usage: gb.py [-h] [-t {linux,local}] [-u] [-b BINARY]
  
  building go
  
  optional arguments:
    -h, --help            show this help message and exit
    -t {linux,local}, --target {linux,local}
                          target OS, default local
    -u, --upx             enable upx compression if it is available
    -b BINARY, --binary BINARY
                          binary name, default base of current dir

for dev:

  1. go get github.com/bingoohuang/statiq
  2. ./buildres.sh
  3. statiq -src=res
  4. go fmt ./...;sh build.sh

Startup example

  1. ./notify4g -i -s "~/notify4g/snapshot" to init ctl shell scripts.
  2. or by export NOTIFY4G_SNAPSHOTDIR=~/notify4g/snapshotenv to specified snapshotDir.

Build Rpm

make package-standalone

snapshots

image

outer network required

  1. dysmsapi.aliyuncs.com:80
  2. oapi.dingtalk.com:443
  3. yun.tim.qq.com:443
  4. cloud.tim.qq.com:443
  5. qyapi.weixin.qq.com:443
  6. mail.capmail.cn:25

Curl scripts

  1. curl 'http://127.0.0.1:11472/notify/sms100' --data '{"templateParams":{"code":"1234"},"mobiles":["18678901234"],"retry":0}'

Request & Response Examples

API document style refers to White House Web API Standards.

API Resources

所有API都可以通过界面点击,然后在Chrome的开发工具的Network中查看详情。

  • 获得直接发送通知的请求体样例 GET /raw/:channel
  • 直接根据配置和内容发送通知 POST /raw/:channel
  • 获取配置详情 GET /config/:configID
  • 获得指定渠道配置样例 GET /config/:configID/:channel
  • 新增/保存配置 POST /config/:configID
  • 删除配置 DELETE /config/:configID
  • 获得指定配置请求体样例 GET /notify/:configID
  • 根据配置发送请求 POST /notify/:configID
GET /raw/:channel
GET /raw/aliyunsms

Response body:

{
    "config": {
        "accessKeyID": "BvXitpxZTiQPBPJNHzKEyUtZX",
        "accessKeySecret": "EaouuhLQvkjvBpcqjySEaDtZp",
        "templateCode": "jHsEdCAyjQiwwKfKTIAyMwhLd",
        "signName": ""
    },
    "data": {
        "templateCode": "",
        "templateParams": {
            "VIbvxqDAKzYvRCOugkfSTdBii": "HUzqgIrkvrpoUvwfOnPkYWJCc",
            "nSodfKtCBsGOdFcFIfhRfKkQD": "MhBpCGIHwwFSTrekZojpWHHRj"
        },
        "signName": "",
        "mobiles": [
            "13640030119"
        ]
    }
}

GET /raw/dingtalkrobot

Response body:

{
    "config": {
        "accessToken": "bmluXMmkzbKJXhHvRYnPWEFon"
    },
    "data": {
        "message": "uxuNAGIvNfwPHCppEJGAFbbJb",
        "atMobiles": [
            "16231720931",
            "12123690368"
        ],
        "atAll": true
    }
}

GET /raw/qcloudsms

Response body:

{
    "config": {
        "sdkappid": "VIsOIVUTXKvmznGCfpklQBsHl",
        "appkey": "jyuRWrnndYwTzEQIDtpaulCEv",
        "tplID": 58,
        "sign": "",
        "tmplVarNames": [
            "NtAOrrDyTQZprXHlRyMKIQVrJ"
        ]
    },
    "data": {
        "params": [
            "DfQeutEzaCfShlItCeaEkTUGF",
            "DZiVFEPPlMANVxGwaCVjypmXA"
        ],
        "mobiles": [
            "15923459113",
            "18923435937"
        ]
    }
}

GET /raw/qcloudvoice

Response body:

{
    "config": {
        "sdkappid": "dqpaGfzwZsdYPeOyCsiCnHuLe",
        "appkey": "HQFbAYSZWVMAhuzBkneOovYpv",
        "tplID": 39,
        "playTimes": 49,
        "tmplVarNames": [
            "KyzjUzrBFcqQjedfJRHYoDbOG",
            "nflOHIkugcnZOrqBkSazNWfPP"
        ]
    },
    "data": {
        "params": {
            "RIsCQnfJqlpSCwrkkFbdBFIFj": "XXcLBedVQEUDCnYApsnqfVPTL"
        },
        "mobile": "13534814833"
    }
}

GET /raw/qywx

Response body:

{
    "config": {
        "corpID": "uCgrmJMtqLPBCFhsvjTArsMmL",
        "corpSecret": "gRHZGuimGqaWdWaBWJwkTAShU",
        "agentID": "GjqWAhwRbpeHnQNxTNgmJjnxD"
    },
    "data": {
        "msg": "SlooidCOblAgkzyWhxDcYtLJJ",
        "userIds": [
            "yFeNmhPfjtisROYMvzGXHlQpd",
            "CUSPjJkWEEfDDKDOfOhAXkqgJ"
        ]
    }
}

GET /raw/mail

Response body:

{
    "config": {
        "smtpAddr": "xaQHabaoaboiqLQkrhnMSwTGo",
        "smtpPort": 94,
        "from": "CEVyoTJ@zTADH.biz",
        "username": "gQVadOOpmwpHnlIyfsCCBulVP",
        "pass": "NvMQhtbtbJgCkOErmOqWRCSKa"
    },
    "data": {
        "subject": "kfYENjIqRgtAsNATTewtSQJtK",
        "message": "nbUGDoWZCCUeCgZnqaHOhlDUc",
        "to": [
            "RyBZMmL@NbhCr.net",
            "fKggIDs@WHkmM.net"
        ]
    }
}

GET /raw/sms

Response body:

{
    "config": {
        "configIds": [
            "NCCNkSbvLCcEBYPRpErzuHOzu",
            "qJoxwNVZfRxOytgzHbfYLSnNg"
        ],
        "random": false,
        "retry": 0
    },
    "data": {
        "templateParams": {
            "CAatGFIenVaglyBHaqLGDVNDm": "HmVmUYwDzaKJZvYwyMqYAAowJ",
            "uCbSRZgyNkgIntizzDrIHVOiy": "TNvBcIHcgrHoiKEGjEsktAKmn"
        },
        "mobiles": [
            "14509804092"
        ],
        "retry": 0
    }
}

POST /raw/:channel
POST /raw/aliyunsms

Request body:

{
    "config": {
        "accessKeyID": "pGkWHwdlIFPxNbwOuzqqHudVk",
        "accessKeySecret": "MuIuTxqaaqPFOqNtVZGGxyIVJ",
        "templateCode": "SMS_11111",
        "signName": "xx编程网"
    },
    "data": {
        "templateCode": "",
        "templateParams": {
            "code": "123456"
        },
        "signName": "",
        "mobiles": [
            "11350758197",
            "12414111245"
        ]
    }
}

Response body:

{
  "status": 200,
  "message": "OK",
  "data": {
    "channel": "aliyunsms",
    "raw": {
      "outId": "yOpBUzo90hnezrhs",
      "code": "OK",
      "message": "OK",
      "requestID": "E4F3D966-002D-4D5D-BFA5-10E547334434",
      "bizID": "831713858682882984^0"
    }
  }
}

POST /raw/dingtalkrobot

Request body:

{
    "config": {
        "accessToken": "RICScixPcBbEJRMdcvNPTqkUr"
    },
    "data": {
        "message": "WYouyJaLExAVGGWpTVumZgXhZ",
        "atMobiles": [
            "10707297593",
            "18621963646"
        ],
        "atAll": false
    }
}

Response body:

{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "dingtalkrobot",
        "raw": {
            "code": 0,
            "message": ""
        }
    }
}

POST /raw/qcloudsms

Request body:

{
    "config": {
        "sdkappid": "erKoSpOlNAKZgTBwZWsyKuSHt",
        "appkey": "aQtuUztXdxpTFcPsdnowkiBUK",
        "tplID": 34,
        "sign": "",
        "tmplVarNames": [
            "oIpzKCYbQmBEaiWXeCPOYwFEG"
        ]
    },
    "data": {
        "params": [
            "QxIiueXozjhTVNMhdANVnYMvR"
        ],
        "mobiles": [
            "14432444366"
        ]
    }
}

Response body:

{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "qcloudsms",
        "raw": {
            "result": 0,
            "errmsg": "OK",
            "ext": "",
            "detail": [
                {
                    "fee": 1,
                    "mobile": "18551855099",
                    "nationcode": "86",
                    "sid": "2019:6646899365302911964",
                    "result": 0,
                    "errmsg": "OK"
                }
            ]
        }
    }
}

POST /raw/qcloudvoice

Request body:

{
    "config": {
        "sdkappid": "nCQtPPaOBnGymUUMmcjWRvxra",
        "appkey": "jdWinpYVkCusHaznjRBxSghoq",
        "tplID": 15,
        "playTimes": 1,
        "tmplVarNames": ["AppName", "WarnSrc", "WithMinutes", "Warning", "Min", "Max"]
    },
    "data": {
        "params": {
            "AppName": "demo", "WarnSrc": "host1", "WithMinutes": "5分", "Warning": "可用内存不足", "Min": "100M", "Max": "200M"
        },
        "mobile": "13388093706"
    }
}

Response body:

{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "qcloudvoice",
        "raw": {
            "result": 0,
            "errmsg": "OK",
            "callid": "bef3d1ce-7df8-11e9-aa35-52540075d5e6",
            "ext": ""
        }
    }
}

POST /raw/qywx

Request body:

{
    "config": {
        "corpID": "TavUQCHdZPmNTkeszuHITWFai",
        "corpSecret": "YiomBBitrBsEqINJYLpSnpXIe",
        "agentID": "1000002"
    },
    "data": {
        "msg": "DPhnPBkYHnKTIltUTvqZqriNS",
        "userIds": [
            "huangjinbing"
        ]
    }
}

Response body:

{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "qywx",
        "raw": {
            "errcode": 0,
            "errmsg": "ok",
            "invaliduser": "",
            "invalidparty": "",
            "invalidtag": ""
        }
    }
}

POST /raw/mail

Request body:

{
    "config": {
        "smtpAddr": "iPtbQlchfAcisTedBhGwWsoZz",
        "smtpPort": 2,
        "from": "ExTWPRT@gYNcz.org",
        "username": "xfAdFgSoGYsPsupEGKPUqnIzf",
        "pass": "lBPKGnydFjkaGjBrEdufObPwt"
    },
    "data": {
        "subject": "jagoWiJBpkulohboaWqPgZZMo",
        "message": "PycUxHOvIUqKuHhcJouyJPsUL",
        "to": [
            "mCypiaF@TOuRk.net",
            "jrrEYOi@FQMlD.ru"
        ]
    }
}

Response body:

{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "mail",
        "raw": null
    }
}
{
    "status": 400,
    "message": "dial tcp: lookup TfdZkPmcNDQFtfAEdRQfgzQkZ: no such host",
    "data": {
        "channel": "mail",
        "raw": null
    }
}

POST /raw/sms

Request body:

{
    "config": {
        "configIds": [
            "as100",
            "qs200"
        ],
        "random": true,
        "retry": 0
    },
    "data": {
        "templateParams": {
            "code": "123456"
        },
        "mobiles": [
            "14509804092"
        ],
        "retry": 0
    }
}

Response body:

{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "aliyunsms",
        "raw": {
            "outId": "9q2hoGoxwyoBM4wx",
            "code": "OK",
            "message": "OK",
            "requestID": "6A8F6D26-AE2B-475F-B603-3886454F0587",
            "bizID": "410500758684794600^0"
        }
    }
}
{
    "status": 200,
    "message": "OK",
    "data": {
        "channel": "qcloudsms",
        "raw": {
            "result": 0,
            "errmsg": "OK",
            "ext": "",
            "detail": [
                {
                    "fee": 1,
                    "mobile": "14509804092",
                    "nationcode": "86",
                    "sid": "8:fCI6QdTlfniajRq3qCK20190524",
                    "result": 0,
                    "errmsg": "OK"
                }
            ]
        }
    }
}

Directories

Path Synopsis
cmd
Package statiq contains static assets.
Package statiq contains static assets.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL