Files
test/sg_wechat_enterprise/we_api/client/api/user.py
2024-07-10 15:58:47 +08:00

144 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import six
from wechatpy.client.api.base import BaseWeChatAPI
class WeChatUser(BaseWeChatAPI):
def get(self, user_id, lang='zh_CN'):
"""
获取用户基本信息
详情请参考
http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html
:param user_id: 用户 ID 。 就是你收到的 `Message` 的 source
:param lang: 返回国家地区语言版本zh_CN 简体zh_TW 繁体en 英语
:return: 返回的 JSON 数据包
使用示例::
from wechatpy import WeChatClient
client = WeChatClient('appid', 'secret')
user = client.user.get('openid')
"""
assert lang in ('zh_CN', 'zh_TW', 'en'), 'lang can only be one of \
zh_CN, zh_TW, en language codes'
return self._get(
'user/info',
params={
'openid': user_id,
'lang': lang
}
)
def get_followers(self, first_user_id=None):
"""
获取关注者列表
详情请参考
http://mp.weixin.qq.com/wiki/3/17e6919a39c1c53555185907acf70093.html
:param first_user_id: 可选。第一个拉取的 OPENID不填默认从头开始拉取
:return: 返回的 JSON 数据包
使用示例::
from wechatpy import WeChatClient
client = WeChatClient('appid', 'secret')
followers = client.user.get_followers()
"""
params = {}
if first_user_id:
params['next_openid'] = first_user_id
return self._get(
'user/get',
params=params
)
def update_remark(self, user_id, remark):
"""
设置用户备注名
详情请参考
http://mp.weixin.qq.com/wiki/10/bf8f4e3074e1cf91eb6518b6d08d223e.html
:param user_id: 用户 ID 。 就是你收到的 `Message` 的 source
:param remark: 备注名
:return: 返回的 JSON 数据包
使用示例::
from wechatpy import WeChatClient
client = WeChatClient('appid', 'secret')
client.user.update_remark('openid', 'Remark')
"""
return self._post(
'user/info/updateremark',
data={
'openid': user_id,
'remark': remark
}
)
def get_group_id(self, user_id):
"""
获取用户所在分组 ID
详情请参考
http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
:param user_id: 用户 ID
:return: 用户所在分组 ID
使用示例::
from wechatpy import WeChatClient
client = WeChatClient('appid', 'secret')
group_id = client.user.get_group_id('openid')
"""
res = self._post(
'groups/getid',
data={'openid': user_id},
result_processor=lambda x: x['groupid']
)
return res
def get_batch(self, user_list):
"""
批量获取用户基本信息
详情请参考
http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html#.E6.89.B9.E9.87.8F.E8.8E.B7.E5.8F.96.E7.94.A8.E6.88.B7.E5.9F.BA.E6.9C.AC.E4.BF.A1.E6.81.AF
:param user_id: user_list
:return: 用户信息的 list
使用示例::
from wechatpy import WeChatClient
client = WeChatClient('appid', 'secret')
users = client.user.get_batch(['openid1', 'openid2'])
users = client.user.get_batch([
{'openid': 'openid1', 'lang': 'zh-CN'},
{'openid': 'openid2', 'lang': 'en'},
])
"""
if all((isinstance(x, six.string_types) for x in user_list)):
user_list = [{'openid': oid} for oid in user_list]
res = self._post(
'user/info/batchget',
data={'user_list': user_list},
result_processor=lambda x: x['user_info_list']
)
return res