吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1461|回复: 20
收起左侧

[Python 原创] Python进行企业微信通知&短信通知

[复制链接]
脚滑的狐狸丷 发表于 2024-8-8 10:36
本帖最后由 脚滑的狐狸丷 于 2024-8-8 10:38 编辑

[Python] 纯文本查看 复制代码
#!/usr/bin/env python
# -- coding: utf-8 --
"""
 @Program:接到需求,获取每日的公网IP,并通过企业微信自建应用发送每天的IP地址(企业微信自建应用有一个坑,必须要添加信任可用IP才可以发送信息) 达不到完美需求,于是延伸使用,判断发送企微的json信息是否成功,如果不成功,调用短信通知服务模块进行通知,并保存相关日志到本地(可改为邮件保存)
 @Author: Janexiaoer
 @Motto : All we do is for fun.~
 
"""
import datetime
import json
import time
import urllib
import urllib.request
import urllib.parse
import requests
from urllib.request import urlopen

# 
# 周日不发信息通知 (无实际需求,暂未续写)
# 每次发完信息后记录到日志当中
t = datetime.datetime.now().strftime('%Y-%m-%d')
ip = urlopen('http://ip.42.pl/raw').read().decode()
with open(r"C:\ip.txt", mode='a') as f:
    f.write(t + '  ' + ip)
    f.write("\n")
# print(ip)

# 发送微信通知
# 微信通知
corpid = "wwbxxxxxxxx"
secret = "OG-plxxxxxxxxzxxxYlxxxx0k"
agentid = "10xxx"


def get_token():
    url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}'
    resp = requests.get(url=url)
    json_dict = resp.json()
    hosts = json_dict.get('access_token')
    if resp.status_code != 200:
        print('请求失败,请检查url')
        return
    return hosts


def send_it():
    now = datetime.datetime.now().strftime('%Y-%m-%d,%H:%M:%S')
    content = now + '  最新IP地址是:' + ip
    # print(content)
    web = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}'.format(get_token())

    form_data = {
        "touser": "@all",  # 接收人
        "msgtype": "textcard",
        "agentid": agentid,  # 应用ID
        "textcard": {
            "title": "叮~ 最新IP地址: " + ip,
            "description": content,
            'url': 'https://api.yimian.xyz/img?type=wallpaper&R18=true',
            "btntxt": "随机风景"
        },
        "safe": 0
    }
    send_msg_res = requests.post(url=web, data=json.dumps(form_data))
    json_dict = send_msg_res.json()
    hosts = json_dict.get('errcode')
    if hosts == 60020:
        txt = '发送失败,错误码60020,公网IP不可信'
        print('转短信通知ing...')
        send()
        with open(r"C:\get_error.log", mode='a') as f1:
            f1.write(t + txt + ip)
            f1.write("\n")
    elif hosts != 200:
        txt1 = '发送失败,程序异常,错误码:'
        with open(r"C:\get_error.log", mode='a') as f1:
            f1.write(t + txt1 + hosts + ip)
            f1.write("\n")
    else:
        print(send_msg_res.text)
        print('已发送')


# 发送短信通知
def send():
    smsapi = "https://api.smsbao.com/"  # 使用的是短信宝平台
    user = 'xxxoer' 
    password = 'baxxxxxxxxxxxxxxxxxx4f9xxxxx7'
    content = "【xxx】微信通知异常," + "最新IP地址:" + ip
    phone = '1234567890'

    data = urllib.parse.urlencode({'u': user, 'p': password, 'm': phone, 'c': content})
    send_url = smsapi + 'sms?' + data
    response = urllib.request.urlopen(send_url)
    the_page = response.read().decode('utf-8')
    # if the_page.status():


if __name__ == '__main__':
    send_it()
    time.sleep(2)

本人偏新手,没有系统学习,只是将尽量融入到工作,没有相关的图片,已经运行很长一段时间,程序没问题,欢迎有更好的想法一起学习。

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

baliao 发表于 2024-8-8 14:22
感谢分享!,
1. 请问corpid = "wwbxxxxxxxx"
secret = "OG-plxxxxxxxxzxxxYlxxxx0k"
agentid = "10xxx"
这些数据从哪个页面查看?
2. url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}' 这个链接从哪里获知的?
 楼主| 脚滑的狐狸丷 发表于 2024-8-8 16:10
linjian648 发表于 2024-8-8 14:44
企业微信群机器人没有ip限制吧

额,群机器人没有,我是创建了第三方应用小程序,然后有一个白名单,才能使用,之所以创建第三方应用是因为它可以更好的进行通知,比如:我可以在微信添加上企业微信的第三方程序,然后直接在微信通知了,不需要额外打开企业微信看通知。
linjian648 发表于 2024-8-8 14:44
文西思密达 发表于 2024-8-8 14:57
baliao 发表于 2024-8-8 14:22
感谢分享!,
1. 请问corpid = "wwbxxxxxxxx"
secret = "OG-plxxxxxxxxzxxxYlxxxx0k"

企业微信里创建应用就可以获得
baliao 发表于 2024-8-8 15:11
文西思密达 发表于 2024-8-8 14:57
企业微信里创建应用就可以获得

感谢分享! 谢谢!
 楼主| 脚滑的狐狸丷 发表于 2024-8-8 16:05
baliao 发表于 2024-8-8 14:22
感谢分享!,
1. 请问corpid = "wwbxxxxxxxx"
secret = "OG-plxxxxxxxxzxxxYlxxxx0k"

如果你要调用企业微信的话,就需要在自己的企业管理里,找到第三方应用,然后创建一个应用小程序,就会有相关的参数,如果还是不知道,可以百度直接搜企业微信调用
baliao 发表于 2024-8-8 16:14
脚滑的狐狸丷 发表于 2024-8-8 16:05
如果你要调用企业微信的话,就需要在自己的企业管理里,找到第三方应用,然后创建一个应用小程序,就会有 ...

感谢指导! 谢谢!
linjian648 发表于 2024-8-8 16:17
脚滑的狐狸丷 发表于 2024-8-8 16:10
额,群机器人没有,我是创建了第三方应用小程序,然后有一个白名单,才能使用,之所以创建第三方应用是因 ...

这倒是真的,现在企业微信群虽然也可以直接在微信查看,但是其实是多了一层,要先点进公司,才能点进群聊。相当于服务号和订阅号的区别吧,但是好处是不用填可信任ip和域名这些。
wangshi001 发表于 2024-8-14 23:27
借鉴一下 UP
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 05:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表