跳转至

consts

feishu.consts

resolve_base_url

Python
resolve_base_url(region: str | None, base_url: str | None) -> str

解析开放平台 API 的基础地址。

显式传入的 base_url 优先级最高,会去除末尾斜杠后直接返回;否则按 region 选择内置地址(feishu 对应飞书国内站,lark 对应国际站 Lark)。

参数:

名称 类型 描述 默认

region

str | None

区域标识,feishulark;为 None 时默认 feishu

必需

base_url

str | None

自定义基础地址,传入时优先于 region

必需

返回:

类型 描述
str

去除末尾斜杠的基础地址。

引发:

类型 描述
ValueError

当未提供 base_urlregion 不在内置区域列表中时抛出。

示例:

Python Console Session
1
2
3
4
5
6
>>> resolve_base_url("feishu", None)
'https://open.feishu.cn'
>>> resolve_base_url("lark", None)
'https://open.larksuite.com'
>>> resolve_base_url(None, "https://example.com/")
'https://example.com'
源代码位于: feishu/consts.py
Python
def resolve_base_url(region: str | None, base_url: str | None) -> str:
    r"""
    解析开放平台 API 的基础地址。

    显式传入的 `base_url` 优先级最高,会去除末尾斜杠后直接返回;否则按 `region`
    选择内置地址(`feishu` 对应飞书国内站,`lark` 对应国际站 Lark)。

    Args:
        region: 区域标识,`feishu` 或 `lark`;为 `None` 时默认 `feishu`。
        base_url: 自定义基础地址,传入时优先于 `region`。

    Returns:
        去除末尾斜杠的基础地址。

    Raises:
        ValueError: 当未提供 `base_url` 且 `region` 不在内置区域列表中时抛出。

    Examples:
        >>> resolve_base_url("feishu", None)
        'https://open.feishu.cn'
        >>> resolve_base_url("lark", None)
        'https://open.larksuite.com'
        >>> resolve_base_url(None, "https://example.com/")
        'https://example.com'
    """
    if base_url is not None:
        return base_url.rstrip("/")
    region = region or "feishu"
    if region not in REGION_BASE_URLS:
        raise ValueError(f"unknown region {region!r}; expected one of {sorted(REGION_BASE_URLS)}")
    return REGION_BASE_URLS[region]

resolve_accounts_url

Python
resolve_accounts_url(region: str | None, accounts_url: str | None = None) -> str

解析用户 OAuth 授权页所在的账号中心地址。

显式传入的 accounts_url 优先级最高,会去除末尾斜杠后直接返回;否则按 region 选择内置地址。该地址用于拼接用户登录授权(consent)链接,与 feishu.consts.resolve_base_url 返回的 API 基础地址不同。

参数:

名称 类型 描述 默认

region

str | None

区域标识,feishulark;为 None 时默认 feishu

必需

accounts_url

str | None

自定义账号中心地址,传入时优先于 region

None

返回:

类型 描述
str

去除末尾斜杠的账号中心地址。

引发:

类型 描述
ValueError

当未提供 accounts_urlregion 不在内置区域列表中时抛出。

飞书文档

获取登录预授权码

示例:

Python Console Session
1
2
3
4
>>> resolve_accounts_url("feishu", None)
'https://accounts.feishu.cn'
>>> resolve_accounts_url("feishu", "https://accounts.internal.example.com/")
'https://accounts.internal.example.com'
源代码位于: feishu/consts.py
Python
def resolve_accounts_url(region: str | None, accounts_url: str | None = None) -> str:
    r"""
    解析用户 OAuth 授权页所在的账号中心地址。

    显式传入的 `accounts_url` 优先级最高,会去除末尾斜杠后直接返回;否则按
    `region` 选择内置地址。该地址用于拼接用户登录授权(consent)链接,与
    [feishu.consts.resolve_base_url][] 返回的 API 基础地址不同。

    Args:
        region: 区域标识,`feishu` 或 `lark`;为 `None` 时默认 `feishu`。
        accounts_url: 自定义账号中心地址,传入时优先于 `region`。

    Returns:
        去除末尾斜杠的账号中心地址。

    Raises:
        ValueError: 当未提供 `accounts_url` 且 `region` 不在内置区域列表中时抛出。

    飞书文档:
        [获取登录预授权码](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/authen-v1/authorize/get)

    Examples:
        >>> resolve_accounts_url("feishu", None)
        'https://accounts.feishu.cn'
        >>> resolve_accounts_url("feishu", "https://accounts.internal.example.com/")
        'https://accounts.internal.example.com'
    """
    if accounts_url is not None:
        return accounts_url.rstrip("/")
    region = region or "feishu"
    if region not in REGION_ACCOUNTS_URLS:
        raise ValueError(f"unknown region {region!r}; expected one of {sorted(REGION_ACCOUNTS_URLS)}")
    return REGION_ACCOUNTS_URLS[region]