跳转至

auth

feishu.auth

get_app_access_token

Python
get_app_access_token(app_id: str, app_secret: str, timeout: int = 120) -> FlatDict
Python
get_app_access_token(app_id: str, app_secret: str, app_ticket: str, timeout: int = 120) -> FlatDict
Python
get_app_access_token(app_id: str, app_secret: str, app_ticket: str | None = None, timeout: int = 120) -> FlatDict

获取应用访问凭证

这是一个通用函数,根据传入的参数自动判断是自建应用还是商店应用,并调用相应的函数。

Parameters:

Name Type Description Default

app_id

str

应用唯一标识(以cli_开头)

required

app_secret

str

应用秘钥

required

app_ticket

str | None

平台定时推送给应用的临时凭证

None

timeout

int

超时时间。默认为 120 秒。

120

Returns:

Type Description
FlatDict

应用访问凭证

飞书文档

通用参数介绍

功能 实现函数
获取自建应用的应用访问凭证 feishu.auth.app_access_token.get_app_access_token_internal
获取商店应用的应用访问凭证 feishu.auth.app_access_token.get_app_access_token_store

Examples:

Python Console Session
>>> get_app_access_token("cli_slkdjalasdkjasd", "dskLLdkasdjlasdKK")
FlatDict(
  ('app_access_token'): 't-g1044ghJRUIJJ5ZPPZMOHKWZISL33E4QSS3abcef'
  ('code'): 0
  ('expire'): 7200
  ('msg'): 'ok'
  ('tenant_access_token'): 't-g1044ghJRUIJJ5ZPPZMOHKWZISL33E4QSS3abcef'
)
>>> get_app_access_token("cli_slkdjalasdkjasd", "dskLLdkasdjlasdKK", "dskLLdkasd")
FlatDict(
  ('code'): 0
  ('msg'): 'success'
  ('app_access_token'): 'a-6U1SbDiM6XIH2DcTCPyeub'
  ('expire'): 7200
)
Source code in feishu/auth/app_access_token.py
Python
def get_app_access_token(  # type: ignore[misc]
    app_id: str,
    app_secret: str,
    app_ticket: str | None = None,
    timeout: int = 120,
) -> FlatDict:
    r"""
    获取应用访问凭证

    这是一个通用函数,根据传入的参数自动判断是自建应用还是商店应用,并调用相应的函数。

    Args:
        app_id: 应用唯一标识(以`cli_`开头)
        app_secret: 应用秘钥
        app_ticket: 平台定时推送给应用的临时凭证
        timeout: 超时时间。默认为 120 秒。

    Returns:
        应用访问凭证

    飞书文档:
        [通用参数介绍](https://open.feishu.cn/document/server-docs/api-call-guide/terminology)

    | 功能            | 实现函数                                                           |
    |---------------|----------------------------------------------------------------|
    | 获取自建应用的应用访问凭证 | [feishu.auth.app_access_token.get_app_access_token_internal][] |
    | 获取商店应用的应用访问凭证 | [feishu.auth.app_access_token.get_app_access_token_store][]    |

    Examples:
        >>> get_app_access_token("cli_slkdjalasdkjasd", "dskLLdkasdjlasdKK")  # doctest:+SKIP
        FlatDict(
          ('app_access_token'): 't-g1044ghJRUIJJ5ZPPZMOHKWZISL33E4QSS3abcef'
          ('code'): 0
          ('expire'): 7200
          ('msg'): 'ok'
          ('tenant_access_token'): 't-g1044ghJRUIJJ5ZPPZMOHKWZISL33E4QSS3abcef'
        )
        >>> get_app_access_token("cli_slkdjalasdkjasd", "dskLLdkasdjlasdKK", "dskLLdkasd")  # doctest:+SKIP
        FlatDict(
          ('code'): 0
          ('msg'): 'success'
          ('app_access_token'): 'a-6U1SbDiM6XIH2DcTCPyeub'
          ('expire'): 7200
        )
    """
    if app_ticket is None:
        return get_app_access_token_internal(app_id, app_secret, timeout)
    if isinstance(app_ticket, int):
        return get_app_access_token_internal(app_id, app_secret, app_ticket)
    return get_app_access_token_store(app_id, app_secret, app_ticket, timeout)

get_tenant_access_token

Python
get_tenant_access_token(app_id: str, app_secret: str, timeout: int = 120) -> FlatDict
Python
get_tenant_access_token(app_access_token: str, tenant_key: str, timeout: int = 120) -> FlatDict
Python
get_tenant_access_token(input_a: str, input_b: str, timeout: int = 120) -> FlatDict

获取租户访问凭证

这是一个通用函数,根据传入的参数自动判断是自建应用还是商店应用,并调用相应的函数。

Parameters:

Name Type Description Default

input_a

str

应用唯一标识(对于自建应用,以cli_开头)或者应用访问凭证(对于商店应用,以a-开头)

required

input_b

str

应用秘钥(对于自建应用)或者租户在飞书上的唯一标识(对于商店应用)

required

timeout

int

超时时间。默认为 120 秒。

120

Returns:

Type Description
FlatDict

租户访问凭证

飞书文档

通用参数介绍

功能 实现函数
获取自建应用的租户访问凭证 [feishu.auth.app_access_token.get_tenant_access_token_internal][]
获取商店应用的租户访问凭证 [feishu.auth.app_access_token.get_tenant_access_token_store][]

Examples:

Python Console Session
>>> get_tenant_access_token("cli_slkdjalasdkjasd", "dskLLdkasdjlasdKK")
FlatDict(
  ('code'): 0
  ('msg'): 'ok'
  ('tenant_access_token'): 't-g1044ghJRUIJJ5ZPPZMOHKWZISL33E4QSS3abcef'
  ('expire'): 7200
)
>>> get_tenant_access_token("a-32bd8551db2f081cbfd26293f27516390b9feb04", "73658811060f175d")
FlatDict(
  ('code'): 0
  ('msg'): 'success'
  ('tenant_access_token'): 't-caecc734c2e3328a62489fe0648c4b98779515d3'
  ('expire'): 7200
)
Source code in feishu/auth/tenant_access_token.py
Python
def get_tenant_access_token(input_a: str, input_b: str, timeout: int = 120) -> FlatDict:  # type: ignore[misc]
    r"""
    获取租户访问凭证

    这是一个通用函数,根据传入的参数自动判断是自建应用还是商店应用,并调用相应的函数。

    Args:
        input_a: 应用唯一标识(对于自建应用,以`cli_`开头)或者应用访问凭证(对于商店应用,以`a-`开头)
        input_b: 应用秘钥(对于自建应用)或者租户在飞书上的唯一标识(对于商店应用)
        timeout: 超时时间。默认为 120 秒。

    Returns:
        租户访问凭证

    飞书文档:
        [通用参数介绍](https://open.feishu.cn/document/server-docs/api-call-guide/terminology)

    | 功能            | 实现函数                                                              |
    |---------------|-------------------------------------------------------------------|
    | 获取自建应用的租户访问凭证 | [feishu.auth.app_access_token.get_tenant_access_token_internal][] |
    | 获取商店应用的租户访问凭证 | [feishu.auth.app_access_token.get_tenant_access_token_store][]    |

    Examples:
        >>> get_tenant_access_token("cli_slkdjalasdkjasd", "dskLLdkasdjlasdKK")  # doctest:+SKIP
        FlatDict(
          ('code'): 0
          ('msg'): 'ok'
          ('tenant_access_token'): 't-g1044ghJRUIJJ5ZPPZMOHKWZISL33E4QSS3abcef'
          ('expire'): 7200
        )
        >>> get_tenant_access_token("a-32bd8551db2f081cbfd26293f27516390b9feb04", "73658811060f175d")  # doctest:+SKIP
        FlatDict(
          ('code'): 0
          ('msg'): 'success'
          ('tenant_access_token'): 't-caecc734c2e3328a62489fe0648c4b98779515d3'
          ('expire'): 7200
        )
    """
    if input_a.startswith("cli_"):
        return get_tenant_access_token_internal(input_a, input_b, timeout)
    if input_a.startswith("a-"):
        return get_tenant_access_token_store(input_a, input_b, timeout)
    raise ValueError("Invalid Request Parameters")