企业号主动调用接口

WeChatClient

class wechatpy.enterprise.client.WeChatClient(corp_id, secret, access_token=None, session=None, timeout=None, auto_retry=True)[源代码]
access_token

WeChat access token

fetch_access_token()[源代码]

Fetch access token

WeChatClient 基本使用方法:

from wechatpy.enterprise import WeChatClient

client = WeChatClient('corp_id', 'secret')
user = client.user.get('user id')
menu = client.menu.get()
client.message.send_text('agent id', 'user id', 'content')
# 以此类推,参见下面的 API 说明
# client.media.xxx()
# client.tag.xxx()

如果不提供 session 参数,默认使用 wechatpy.session.memorystorage.MemoryStorage session 类型, 注意该类型不是线程安全的,不推荐生产环境使用。

用户接口

class wechatpy.enterprise.client.api.WeChatUser(client=None)[源代码]
batch_delete(user_ids)[源代码]

批量删除成员 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=管理成员

convert_to_openid(user_id, agent_id=None)[源代码]

user_id 转成 openid

详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=Userid%E4%B8%8Eopenid%E4%BA%92%E6%8D%A2%E6%8E%A5%E5%8F%A3

参数:
  • user_id – 企业号内的成员 ID
  • agent_id – 可选,需要发送红包的应用ID,若只是使用微信支付和企业转账,则无需该参数
返回:

返回的 JSON 数据包

convert_to_user_id(openid)[源代码]

openid 转成 user_id

详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=Userid%E4%B8%8Eopenid%E4%BA%92%E6%8D%A2%E6%8E%A5%E5%8F%A3

参数:openid – 在使用微信支付、微信红包和企业转账之后,返回结果的openid
返回:该 openid 在企业号中对应的成员 user_id
create(user_id, name, department=None, position=None, mobile=None, gender=0, tel=None, email=None, weixin_id=None, extattr=None)[源代码]

创建成员 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=管理成员

delete(user_id)[源代码]

删除成员 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=管理成员

get(user_id)[源代码]

获取成员 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=管理成员

list(department_id, fetch_child=False, status=0)[源代码]

批量获取部门成员 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=管理成员

update(user_id, name=None, department=None, position=None, mobile=None, gender=None, tel=None, email=None, weixin_id=None, enable=None, extattr=None)[源代码]

更新成员 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=管理成员

标签接口

class wechatpy.enterprise.client.api.WeChatTag(client=None)[源代码]

主动消息接口

class wechatpy.enterprise.client.api.WeChatMessage(client=None)[源代码]
send_text_card(agent_id, user_ids, title, description, url, btntxt='详情', party_ids='', tag_ids='')[源代码]

文本卡片消息 https://work.weixin.qq.com/api/doc#10167/文本卡片消息

请求示例: {

“touser” : “UserID1|UserID2|UserID3”, “toparty” : “PartyID1 | PartyID2”, “totag” : “TagID1 | TagID2”, “msgtype” : “textcard”, “agentid” : 1, “textcard” : {

“title” : “领奖通知”, “description” : “<div class=”gray”>2016年9月26日</div> <div class=”normal”>恭喜你抽中iPhone 7一台,

领奖码:xxxx</div><div class=”highlight”>请于2016年10月10日前联系行政同事领取</div>”,

“url” : “URL”, “btntxt”:”更多”

}

}

特殊说明: 卡片消息的展现形式非常灵活,支持使用br标签或者空格来进行换行处理,也支持使用div标签来使用不同的字体颜色, 目前内置了3种文字颜色:灰色(gray)、高亮(highlight)、默认黑色(normal),将其作为div标签的class属性即可, 具体用法请参考上面的示例。

参数:
  • agent_id – 必填,企业应用的id,整型。可在应用的设置页面查看。
  • user_ids – 成员ID列表。
  • title – 必填,成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。
  • description – 必填,描述,不超过512个字节,超过会自动截断
  • url – 必填,点击后跳转的链接。
  • btntxt – 按钮文字。 默认为“详情”, 不超过4个文字,超过自动截断。
  • party_ids – 部门ID列表。
  • tag_ids – 标签ID列表。

自定义菜单接口

class wechatpy.enterprise.client.api.WeChatMenu(client=None)[源代码]

媒体文件接口

class wechatpy.enterprise.client.api.WeChatMedia(client=None)[源代码]
download(media_id)[源代码]

获取临时素材文件 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E4%B8%B4%E6%97%B6%E7%B4%A0%E6%9D%90%E6%96%87%E4%BB%B6

参数:media_id – 媒体文件 ID
返回:requests 的 Response 实例
get_url(media_id)[源代码]

获取临时素材下载地址 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E4%B8%B4%E6%97%B6%E7%B4%A0%E6%9D%90%E6%96%87%E4%BB%B6

参数:media_id – 媒体文件 ID
返回:临时素材下载地址
upload(media_type, media_file)[源代码]

上传临时素材文件 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E4%B8%B4%E6%97%B6%E7%B4%A0%E6%9D%90%E6%96%87%E4%BB%B6

参数:
  • media_type – 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和普通文件(file)
  • media_file – 要上传的文件,一个 File-object
返回:

返回的 JSON 数据包

工具类接口

class wechatpy.enterprise.client.api.WeChatMisc(client=None)[源代码]
get_wechat_ips()[源代码]

获取微信服务器 IP 列表

返回:IP 地址列表

JS-SDK 接口

class wechatpy.enterprise.client.api.WeChatJSAPI(client=None)[源代码]
get_jsapi_signature(noncestr, ticket, timestamp, url)[源代码]

获取 JSAPI 签名

参数:
  • noncestr – nonce string
  • ticket – JS-SDK ticket
  • timestamp – 时间戳
  • url – URL
返回:

签名

get_jsapi_ticket()[源代码]

获取微信 JS-SDK ticket

该方法会通过 session 对象自动缓存管理 ticket

返回:ticket
get_ticket()[源代码]

获取微信 JS-SDK ticket

http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS%E6%8E%A5%E5%8F%A3

返回:返回的 JSON 数据包

素材接口

class wechatpy.enterprise.client.api.WeChatMaterial(client=None)[源代码]
add(agent_id, media_type, media_file)[源代码]

新增其它类型永久素材 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90

参数:
  • agent_id – 企业应用的id
  • media_type – 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)普通文件(file)
  • media_file – 要上传的文件,一个 File-object
返回:

返回的 JSON 数据包

add_articles(articles)[源代码]

新增永久图文素材 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90

参数:articles – 图文素材数组
返回:返回的 JSON 数据包
batchget(agent_id, media_type, offset=0, count=20)[源代码]

批量获取永久素材列表 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%B4%A0%E6%9D%90%E5%88%97%E8%A1%A8

参数:
  • agent_id – 企业应用的id
  • media_type – 媒体文件类型,分别有图文(mpnews)、图片(image)、 语音(voice)、视频(video)和文件(file)
  • offset – 从全部素材的该偏移位置开始返回,0 表示从第一个素材返回
  • count – 返回素材的数量,取值在1到20之间
返回:

返回的 JSON 数据包

delete(agent_id, media_id)[源代码]

删除永久素材 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%A0%E9%99%A4%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90

参数:
  • agent_id – 企业应用的id
  • media_id – 媒体文件 ID
返回:

返回的 JSON 数据包

get(agent_id, media_id)[源代码]

获取永久素材 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90

参数:
  • agent_id – 企业应用的id
  • media_id – 媒体文件 ID
返回:

requests 的 Response 实例

get_articles(agent_id, media_id)[源代码]

获取永久素材:图文消息素材 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90

参数:
  • agent_id – 企业应用的id
  • media_id – 媒体文件 ID
返回:

返回的 JSON 数据包

get_count(agent_id)[源代码]

获取素材总数 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%B4%A0%E6%9D%90%E6%80%BB%E6%95%B0

参数:agent_id – 企业应用的id
返回:返回的 JSON 数据包
get_url(agent_id, media_id)[源代码]

获取永久素材下载地址 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90

参数:
  • agent_id – 企业应用的id
  • media_id – 媒体文件 ID
返回:

临时素材下载地址

update_articles(agent_id, media_id, articles)[源代码]

修改永久图文素材 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=%E4%BF%AE%E6%94%B9%E6%B0%B8%E4%B9%85%E5%9B%BE%E6%96%87%E7%B4%A0%E6%9D%90

参数:
  • media_id – 要修改的图文消息的 id
  • index – 要更新的文章在图文消息中的位置(多图文消息时,此字段才有意义),第一篇为 0
  • articles – 图文素材数组
返回:

返回的 JSON 数据包

摇一摇周边接口

class wechatpy.enterprise.client.api.WeChatShakeAround(client=None)[源代码]
get_shake_info(ticket)[源代码]

获取摇周边的设备及用户信息 详情请参考 http://qydev.weixin.qq.com/wiki/index.php?title=获取设备及用户信息

参数:ticket – 摇周边业务的ticket,可在摇到的 URL 中得到,ticket 生效时间为30分钟
返回:设备及用户信息