微信公众号后台开发总结之二

微信公众号后台开发总结之二

第二个部分、公众号后台实现获取用户信息

 

其实获取用户信息和简单,但是在这个过程中有比较多的坑,只要把这些坑跳过了,真是很简单,下面我就简单介绍几种获取用户信息的方式:

(1)      网页授权获取用户的信息分为授权登录和静默授权,授权登录个人觉得该方法可能会影响用户的体验,用户需要确认后才能继续访问相应的内容,过程相对耗时;但基于用户对个人信息安全的考虑来讲还是值得推荐。但网页授权还有一个问题便是在开发的时候需要一个授权回调页面域名,而该域名目前更新了一些新的要求,比如该域名必须要进行过备案等等……让开发的难度和时间都增加了不少。

(2)      在用户跟公众号产生交互(关注、取消关注、发送消息)时获取用户信息,因为在用户跟公众号产生交互后,微信服务器向公众号配置的服务器地址(URL)推送相应额消息,而在消息中会有该用户的OpenID,获取用户的信息的接口是:

"https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";
所以我们只要有用户的OpenID和Access_Token就可以通过访问改接口从而和获取用户的信息。下面就详细介绍详细的步骤;

一、查看微信的官方文档可以看到我们可以通过OpenID来获取用户的信息,但在网上居多的是通过网页授权的方式来获得用户的信息,开发过程较复杂耗时较长,并且可能影响用户的体验,所在本次的开发过程中我采用了在用户与公众号产生交互时获取用户的信息,具体讲我是采用了当用户在关注公众号时便获取了用户的信息,当然也可在用户给公众号发送消息时获取用户的信息,这个获取的过程对用户是不可见的。具体的操作如下:

(1)首先获取Access_Token,官方文档给的获取Access_Token访问的接口为:

https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
其中grant_type =client_credential不用改变,appid和secret需要换成自己公众号相应的值。通过请求该接口我们可以得到Access_Token,但在这里需要注意的是公众号开发信息中IP白名单,在最初由于没有设置好该IP白名单始终不能成功获取到Access_Token,并且报错,获取微信公众号授权失败, 请稍后重试!公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint我们来看看官方文档的解释

 

图1

所以在获取Access_Token前一定要确认自己的IP白名单是否已经设置好了,大家可以通过微信提供的方法进行检测,访问下面的网址,填写公众号相应的信息便可测试。

https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3%20/token

同时也可以自己直接访问下面的接口,将appid和secret替换成自己公众号的相应的值就可以了。

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

(3)    由于用户在关注公众号时,微信会向后台推送一则XML数据包<xml><ToUserName>< ![CDATA[toUser] ]></ToUserName>
<FromUserName>< ![CDATA[FromUser] ]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType>< ![CDATA[event] ]></MsgType>
<Event>< ![CDATA[subscribe] ]></Event>
</xml>

参数说明:ToUserName开发者微信号

          FromUserName发送方帐号(一个OpenID

          CreateTime消息创建时间(整型)

                          MsgType消息类型,event

          Event事件类型,subscribe(订阅)unsubscribe(取消订阅)

因此该数据包中已经有用户的OpenID了,我们拿来直接用就可以了,通过OpenIDAccess_Token来获取用户信息调用的接口如下:

接口调用请求说明
http请求方式: GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

通过调用改接口我们便可以得到用户信息的JSON数据包:

{
    "subscribe": 1,
    "openid":"o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
    "nickname":"Band",
    "sex": 1,
    "language":"zh_CN",
    "city": "
广州",
    "province": "
广东",
    "country": "
中国",
   "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
    "subscribe_time":1382694957,
    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
    "remark": "",
    "groupid": 0,
    "tagid_list":[128,2],
    "subscribe_scene":"ADD_SCENE_QR_CODE",
    "qr_scene": 98765,
    "qr_scene_str":""
}

数据包中具体的含义我就不多做解释了,大家可以自己查阅资料得知。在获得数据包后大家还要进行解析,然后在后台的程序中,将对应的实体类的信息进行相应的赋值,然后再保存,这中间的具体过程大家熟悉后台开发的人来讲都应该很熟悉就不赘述了。

最后还需要说明的一点是:微信返回用户信息的JSON包中,subscribe_time是一个整形,但是没有提及到该数据是以秒(S)为单位的时间,所以在转换的时候一定要注意,否则时间不会对。

 

### 将DeepSeek集成至微信公众号后台 为了将DeepSeek集成到微信公众号后台,可以借鉴企业微信应用中Webhook配置的经验并结合DeepSeek的能力。具体来说: 在企业环境中,当拥有Webhook地址之后,可以通过特定接口让应用程序之间传递信息[^1]。对于微信公众号而言,开发者同样能够利用其服务器端口对接收的消息进行处理,并通过调用自定义的服务(如由DeepSeek提供支持的大规模预训练模型服务)来进行智能化响应。 考虑到DeepSeek具备多种先进的对话和服务机器人功能[^2],以及它能够在本地环境内被安装的事实[^3],理论上讲,只要遵循微信公众平台所提供的开发指南完成必要的认证流程和技术准备工作,就可以把运行于内部网络中的DeepSeek实例连接起来,从而实现在接收到用户提问时自动触发向该AI引擎发送请求获取答案的行为模式。 然而值得注意的是,目前官方并没有直接给出关于如何确切实施这一过程的具体指导文件;因此实际操作过程中可能需要依据现有资源灵活调整方案设计思路。通常情况下这涉及到以下几个方面的考量: - **安全性验证**:确保所有通信都经过安全加密传输,并且只有授权方才能访问敏感数据。 - **消息格式适配**:根据微信公众号所规定的输入输出结构来准备相应的JSON对象或其他形式的数据包。 - **错误处理机制**:建立有效的异常捕捉逻辑以便及时发现并解决问题,保障系统的稳定性和可靠性。 ```python import requests def send_to_deepseek(message): url = "http://your.deepseek.server/api/v1/chat" headers = {"Content-Type": "application/json"} payload = { "message": message, # Add other parameters as needed based on the API documentation of your DeepSeek instance. } response = requests.post(url, json=payload, headers=headers) return response.json() ``` 此代码片段展示了如何使用Python脚本向假设存在的DeepSeek RESTful API提交聊天请求的一个简单例子。当然,在真实场景下还需要考虑更多细节问题,比如身份验证方式的选择、超时设置等参数优化措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值