service.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import, unicode_literals
  3. from wechatpy.client.api.base import BaseWeChatAPI
  4. class WeChatService(BaseWeChatAPI):
  5. """
  6. 应用授权(服务商、第三方应用开发相关)
  7. https://work.weixin.qq.com/api/doc#90001/90143/90597
  8. 新的授权体系有部分接口未实现,欢迎提交 PR。
  9. """
  10. def get_provider_token(self, provider_secret):
  11. """
  12. 获取服务商凭证
  13. https://work.weixin.qq.com/api/doc#90001/90143/91200
  14. :param provider_secret: 服务商的secret,在服务商管理后台可见
  15. :return: 返回的 JSON 数据包
  16. """
  17. return self._post(
  18. 'service/get_provider_token',
  19. data={
  20. 'corpid': self._client.corp_id,
  21. 'provider_secret': provider_secret,
  22. }
  23. )
  24. def get_suite_token(self, suite_id, suite_secret, suite_ticket):
  25. """
  26. 获取第三方应用凭证
  27. https://work.weixin.qq.com/api/doc#90001/90143/9060
  28. :param suite_id: 以ww或wx开头应用id(对应于旧的以tj开头的套件id)
  29. :param suite_secret: 应用secret
  30. :param suite_ticket: 企业微信后台推送的ticket
  31. :return: 返回的 JSON 数据包
  32. """
  33. return self._post(
  34. 'service/get_suite_token',
  35. data={
  36. 'suite_id': suite_id,
  37. 'suite_secret': suite_secret,
  38. 'suite_ticket': suite_ticket
  39. }
  40. )
  41. def get_login_info(self, auth_code, provider_access_token=None):
  42. """
  43. 获取企业号登录用户信息
  44. 详情请参考
  45. https://qydev.weixin.qq.com/wiki/index.php?title=获取企业号登录用户信息
  46. :param provider_access_token: 服务提供商的 accesstoken
  47. :param auth_code: OAuth 2.0 授权企业号管理员登录产生的 code
  48. :return: 返回的 JSON 数据包
  49. """
  50. return self._post(
  51. 'service/get_login_info',
  52. params={
  53. 'provider_access_token': provider_access_token,
  54. },
  55. data={
  56. 'auth_code': auth_code,
  57. }
  58. )
  59. def get_login_url(self, login_ticket, target, agentid=None, provider_access_token=None):
  60. """
  61. 获取登录企业号官网的url
  62. 详情请参考
  63. https://qydev.weixin.qq.com/wiki/index.php?title=获取登录企业号官网的url
  64. :param provider_access_token: 服务提供商的 accesstoken
  65. :param login_ticket: 通过get_login_info得到的login_ticket, 10小时有效
  66. :param target: 登录跳转到企业号后台的目标页面
  67. :param agentid: 可选,授权方应用id
  68. :return: 返回的 JSON 数据包
  69. """
  70. return self._post(
  71. 'service/get_login_url',
  72. params={
  73. 'provider_access_token': provider_access_token,
  74. },
  75. data={
  76. 'login_ticket': login_ticket,
  77. 'target': target,
  78. 'agentid': agentid,
  79. }
  80. )