# coding: utf-8 from __future__ import absolute_import, division, print_function, unicode_literals from typing import TYPE_CHECKING from utils.feishu.dt_code import MinaCodeToSessionResp from utils.feishu.dt_help import make_datatype if TYPE_CHECKING: from utils.feishu.api import OpenLark class APIMinaMixin(object): def mina_code_2_session(self, code): """通过login接口获取到登录凭证后,开发者可以通过服务器发送请求的方式获取 session_key 和 openId 等 :type self: OpenLark :param code: 登录时获取的 code :type code: str :return: MinaCodeToSessionResp :type: MinaCodeToSessionResp :rtype MinaCodeToSessionResp https://open.feishu.cn/document/ukTMukTMukTM/ukjM04SOyQjL5IDN """ hosts = { 1: 'https://mina.bytedance.com/openapi/tokenLoginValidate', 0: 'https://mina-staging.bytedance.net/openapi/tokenLoginValidate', } url = hosts[int(not self.is_staging)] app_access_token = self.app_access_token body = {'token': app_access_token, 'code': code} res = self._post(url, body) return make_datatype(MinaCodeToSessionResp, res)