企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置

简介: 企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置

现在创建应用想要使用需要设置企业可信IP,而配置企业可信IP需要先配置 设置可信域名 或 设置接收消息服务器URL,域名需要花钱而且配置麻烦,这里选择 设置接收消息服务器URL。

不设置就报这个错误:

真麻烦呀!!!

{u'errcode': 60020, u'errmsg': u'not allow to access from your ip, hint: [1692000515331], from ip: xxx.xxx.xxx.xx, more info at https://open.work.weixin.qq.com/devtool/query?e=60020'}

这里其实是一个类似防火墙的功能,只要在里面配置可以访问过来的 IP 就可以了

配置条件:

* 找一台有公网的linux服务器 没有可以选择内网穿透软件  都没有我也没办法

* 安装python3  百度一下

创建自定义应用

登录网页版 >应用管理>创建应用>进入应用>最下面有个企业可信IP>选择设置接收消息服务器URL

 

脚本里的这段代码配置一下

点击一下这里获取个随机值Token 和 EncodingAESKey 粘贴进去就行了,注意: 不要关闭网页一会还要用。

企业信息的ID在我的企业可以找到

这里提示下:下面改 2.py 文件时,改的时候只要改下面文件里的这个部分就好了

1. qy_api = [
2.     WXBizMsgCrypt("XXXXXXX", "XXXXXXX", "XXXXXXX"), 
3. ] #对应接受消息回调模式中的token,EncodingAESKey 和 企业信息中的企业id

引入WXBizMsgCrypt模块步骤

将这个文件放在和脚本同一个目录即可

1. # 下载项目
2. wget https://github.com/sbzhu/weworkapi_python/archive/refs/heads/master.zip
3. 
4. # 解压
5. unzip master.zip
6. 
7. # 改名
8. mv weworkapi_python-master weworkapi_python

⚠️:引入模块上面这里切记要修改模块名为 weworkapi_python ,否则无法使用

随便起个名vim到一个文件即可 我这里叫2.py   这里改的时候只要改上面框出的企业的信息即可

1. [root@apphost dba]# cat 2.py 
2. #-*- encoding:utf-8 -*-
3. from flask import abort, request
4. from flask import Flask
5. from xml.dom.minidom import parseString
6. import _thread
7. import time
8. import os
9. import sys
10. sys.path.append("weworkapi_python/callback")  # 正确的模块导入路径
11. from WXBizMsgCrypt3 import WXBizMsgCrypt   # https://github.com/sbzhu/weworkapi_python 项目地址
12. app = Flask(__name__)
13. 
14. # 对应步骤4中接受消息回调模式中的URL,如域名是'www.example.com' 那么在步骤4中填入的url就为"http://www.example.com/hook_path"
15. @app.route('/hook_path', methods=['GET','POST']) 
16. def douban():
17. if request.method == 'GET':
18.         echo_str = signature(request, 0)
19. return(echo_str)
20. elif request.method == 'POST':
21.         echo_str = signature2(request, 0)
22. return(echo_str)
23. 
24. qy_api = [
25.     WXBizMsgCrypt("XXXXXXX", "XXXXXXX", "XXXXXXX"),
26. ] #对应接受消息回调模式中的token,EncodingAESKey 和 企业信息中的企业id   # 只改这里即可
27. 
28. # 开启消息接受模式时验证接口连通性
29. def signature(request, i): 
30.     msg_signature = request.args.get('msg_signature', '')
31.     timestamp = request.args.get('timestamp', '')
32.     nonce = request.args.get('nonce', '')
33.     echo_str = request.args.get('echostr', '')
34.     ret,sEchoStr=qy_api[i].VerifyURL(msg_signature, timestamp,nonce,echo_str)
35. if (ret != 0):
36. print("ERR: VerifyURL ret: " + str(ret))
37. return("failed")
38. else:
39. return(sEchoStr)
40. 
41. # 实际接受消息
42. def signature2(request, i):
43.     msg_signature = request.args.get('msg_signature', '')
44.     timestamp = request.args.get('timestamp', '')
45.     nonce = request.args.get('nonce', '')
46.     data = request.data.decode('utf-8')
47.     ret,sMsg=qy_api[i].DecryptMsg(data,msg_signature, timestamp,nonce)
48. if (ret != 0):
49. print("ERR: DecryptMsg ret: " + str(ret))
50. return("failed")
51. else:
52. with open ("/var/log/qywx.log", 'a+') as f: # 消息接收日志
53.             doc = parseString(sMsg)
54.             collection = doc.documentElement
55.             name_xml = collection.getElementsByTagName("FromUserName")
56.             msg_xml = collection.getElementsByTagName("Content")
57.             type_xml = collection.getElementsByTagName("MsgType")
58.             pic_xml = collection.getElementsByTagName("PicUrl")
59.             msg = ""
60.             name = ""
61.             msg_type = type_xml[0].childNodes[0].data
62. if msg_type == "text": #文本消息
63.                 name = name_xml[0].childNodes[0].data        #发送者id
64.                 msg = msg_xml[0].childNodes[0].data          #发送的消息内容
65.                 f.write(time.strftime('[%Y-%m-%d %H:%M:%S]') + "[ch%d] %s:%s\n" % (i, name, msg))
66.                 _thread.start_new_thread(os.system, ("python3 command.py '%s' '%s' '%d' '%d'" % (name, msg, i, 0), )) #此处将消息进行外部业务处理
67. 
68. elif msg_type == "image": #图片消息
69.                 name = name_xml[0].childNodes[0].data
70.                 pic_url = pic_xml[0].childNodes[0].data
71.                 f.write(time.strftime('[%Y-%m-%d %H:%M:%S]') + "[ch%d] %s:图片消息\n" % (i, name))
72.                 _thread.start_new_thread(os.system, ("python3 command.py '%s' '%s' '%d' '%d'" % (name, pic_url, i, 1), ))  #此处将消息进行外部业务处理
73. 
74.             f.close()
75. 
76. return("ok")
77. 
78. if __name__=='__main__':
79.     app.run("0.0.0.0", 888)  #本地监听端口,可自定义

运行项目

python3 2.py

这里运行的时候可能会缺少模块,缺少什么模块会提示使用下面的命令安装即可,安装不上百度直接贴百度,有些包名不一样

pip3 install 模块名

这样就运行起来了

运行时注意引入的库是否引入正确

脚本里的端口注意不要和现有的端口冲突了

防火墙或云主机网络限制是否开放了888端口

解决以上问题后访问你的url即可

1. # 路径要写上
2. http://你的IP地址:888/hook_path

这样就说明好了

然后在API接收消息的网页上输入这个路径点击保存即可成功

注意:

确保网页上的Token 和 EncodingAESKey 和脚本里的一致

即:上面提示不要关的网页

点击保存成功后就可以写进去 IP 了

这样就可以写可信IP了 铁汁

把你的IP写进去就不报错了

用完把脚本关了就行,铁汁们,点个赞咋样


相关文章
|
5月前
|
iOS开发 开发者
iOS微信分享配置universal links步骤
iOS微信分享配置universal links步骤
1456 58
|
28天前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
132 12
|
5月前
|
人工智能 数据可视化 API
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
163 2
|
6月前
|
人工智能
10 分钟构建 AI 客服并应用到网站、钉钉或微信中简说
10 分钟构建 AI 客服并应用到网站、钉钉或微信
|
3月前
|
存储 缓存 开发框架
提高微信小程序的应用速度
【10月更文挑战第21天】提高微信小程序的应用速度需要从多个方面入手,综合运用各种优化手段。通过不断地优化和改进,能够显著提升小程序的性能,为用户带来更流畅、更高效的使用体验。
97 3
|
3月前
|
人工智能 小程序 算法
微信小程序地图定位的核心技术与实际应用详解
在移动互联网时代,微信小程序凭借其轻量化和普及性,成为室内地图导航的理想平台。本文探讨了微信小程序在室内定位领域的创新应用,包括蓝牙iBeacon定位、高精度地图构建及AI路径规划等核心技术,及其在购物中心、医院、机场火车站和景区等场景的应用,展示了其为用户带来的高效、智能的导航体验。
171 0
|
5月前
|
人工智能 运维 负载均衡
10 分钟构建 AI 客服并应用到网站、钉钉或微信中
《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案通过详尽的文档和示例代码,使具有一定编程基础的用户能够快速上手,顺利完成AI客服集成。方案涵盖高可用性、负载均衡及定制化选项,满足生产环境需求。然而,若文档不清晰或存在信息缺失,则可能导致部署障碍。实际部署中可能遇到网络、权限等问题,需逐一排查。云产品的功能、性能及操作配置便捷性直接影响解决方案效果,详尽的产品手册有助于快速解决问题。总体而言,该方案在各方面表现出色,值得推荐。
|
4月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
851 1
|
4月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
134 0
微信小程序:自定义关注公众号组件样式
|
4月前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【10月更文挑战第3天】微信小程序作为新兴应用形态,凭借便捷体验与社交传播能力,成为企业拓展业务的新渠道。本文探讨了微信小程序全栈开发中的PWA技术应用,包括离线访问、后台运行、桌面图标及原生体验等方面,助力开发者提升小程序性能与用户体验。PWA技术在不同平台的兼容性、性能优化及用户体验是实践中需注意的关键点。
97 5

热门文章

最新文章