ServiceProviderApi.py
1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python
# -*- coding:utf-8 -*-
##
# Copyright (C) 2018 All rights reserved.
#
# @File ServiceProviderApi.py
# @Brief
# @Author abelzhu, abelzhu@tencent.com
# @Version 1.0
# @Date 2018-02-26
#
#
from abc import ABC
from .AbstractApi import *
SERVICE_PROVIDER_API_TYPE = {
'GET_PROVIDER_TOKEN': ['/cgi-bin/service/get_provider_token', 'POST'],
'GET_LOGIN_INFO': ['/cgi-bin/service/get_login_info?access_token=PROVIDER_ACCESS_TOKEN', 'POST'],
'GET_REGISTER_CODE': ['/cgi-bin/service/get_register_code?provider_access_token=PROVIDER_ACCESS_TOKEN', 'POST'],
'GET_REGISTER_INFO': ['/cgi-bin/service/get_register_info?provider_access_token=PROVIDER_ACCESS_TOKEN', 'POST'],
'SET_AGENT_SCOPE': ['/cgi-bin/agent/set_scope', 'POST'], # TODO
'SET_CONTACT_SYNC_SUCCESS': ['/cgi-bin/sync/contact_sync_success', 'GET'],
}
class ServiceProviderApi(AbstractApi, ABC):
def __init__(self, corpid, provider_secret):
super().__init__()
self.corpid = corpid
self.provider_secret = provider_secret
self.provider_access_token = None
def getProviderAccessToken(self):
if self.provider_access_token is None:
self.refreshProviderAccessToken()
return self.provider_access_token
def refreshProviderAccessToken(self):
response = self.httpCall(
SERVICE_PROVIDER_API_TYPE['GET_PROVIDER_TOKEN'],
{
'corpid': self.corpid,
'provider_secret': self.provider_secret,
})
self.provider_access_token = response.get('provider_access_token')