如何使用python 调用企微的https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_moment_list?access_token=ACCESS_TOKEN接口
时间: 2024-09-14 22:13:24 浏览: 128
调用腾讯企业微信的`https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_moment_list`接口,用于获取外部联系人关注的企业微信工作群的消息列表,你需要按照以下步骤操作:
1. **准备所需模块**:
首先确保已经安装了`requests`库,如果没有,可以使用`pip install requests`命令进行安装。
2. **获取access_token**:
你需要先通过授权流程获取access_token,这个token的有效期通常是7200秒,存储起来以便后续使用。示例代码如下:
```python
import hashlib
import time
from urllib.parse import urlencode
def get_access_token(app_id, app_secret):
timestamp = int(time.time())
string_to_sign = f"{timestamp}&{app_id}&{app_secret}"
signature = hashlib.sha256(string_to_sign.encode()).hexdigest()
url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?grant_type=client_credential&appid={app_id}&secret={app_secret}×tamp={timestamp}&nonce={signature}"
response = requests.get(url)
data = response.json()
return data['access_token']
```
然后用这个函数获取access_token,替换`ACCESS_TOKEN`为你从服务器获取的实际token值。
3. **构造请求**:
使用`access_token`构建完整的URL,并发起GET请求,请求头设置为JSON格式。示例代码如下:
```python
def get_moment_list(access_token):
moment_list_url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get_moment_list?access_token=" + access_token
headers = {'Content-Type': 'application/json'}
response = requests.get(moment_list_url, headers=headers)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"请求失败,状态码:{response.status_code}, 错误信息:{response.text}")
access_token = get_access_token(your_app_id, your_app_secret)
moments = get_moment_list(access_token)
```
4. **解析返回结果**:
`moments`变量将包含一个字典,其中包含了外部联系人的群消息列表,你可能需要进一步解析这个字典,提取出你关心的数据。
5. **处理响应错误**:
如果接口返回的状态码不是200,需要捕获异常并进行相应处理。
阅读全文