配置

配置

开始创建 Python 应用程序之前,需要先向 Zoho 认证应用。为此,需要完成一些配置过程。验证应用程序共有两种方法:

  • 传递配置字典 - 然后调用 ZCRMRestClient.initialize(config);
  • 使用资源文件夹中的属性文件 - 然后调用 ZCRMRestClient.initialize();

属性文件

OAuth 客户端明细将作为属性文件提供给 SDK。在 SDK 中,我们已放置配置文件 (oauth_configuration.properties)。请在该文件中设置相应值。可在“zcrmsdk/resources”下找到该文件。

请单独填写以下键的值。

根据您的域(EU 或 CN),更改 accounts_url 的值。默认值设置为 US 域。

client_id=
client_secret=
redirect_uri=
accounts_url=https://accounts.zoho.com
token_persistence_path=

  • client_id、client_secretredirect_uri 是注册 Zoho 客户端后获取的 OAuth 客户端配置。
  • access_type 必须设置为 offline 的唯一原因是 Python SDK 目前不支持在线 OAuth 客户端。
  • token_persistence_path 是文件形式的 OAuth 相关令牌。如果设置了此项,那么不需要数据库来进行保存。保存仅通过文件进行。

在 configuration.properties 中对键“applicationLogFilePath”添加绝对路径以存储日志。可在“zcrmsdk/resources”下找到该文件。该文件将记录使用 Python SDK 期间发生的异常。

请单独填写以下键的值。如果未提供日志路径,那么不会存储日志,但您可在控制台中查看它们。

applicationLogFilePath=

要对 sandbox 帐户进行 API 调用,请将以下键的值更改为 true。默认情况下,此值为 false。

sandbox=true

如果您的应用程序只需要单用户认证,那么您必须在 configurations.properties 文件中按以下方式设置用户电子邮件 ID。

currentUserEmail=user@email.com

要使用多用户认证,您需要在当前线程中将用户电子邮件 ID 设置为属性。

threading.current_thread().__setattr__('current_user_email','user@email.com')

也可对单用户认证使用以上方法,但建议通过在 configuration.properties 文件中设置电子邮件 ID 进行。

如果未在当前线程中设置用户电子邮件,那么 SDK 要求它包含在 configuration.properties 文件中。如果未使用以上任何方式设置用户电子邮件,那么 Python SDK 将抛出异常。

配置字典

现在,当您调用 ZCRMRestClient.initialize(config) 函数时,可以将配置值作为 Python 字典(键值对)参数来传递。下面是字典中的键列表。

必填字段可选字段数据库字段(仅当使用了 DB Persistence 时)
client_idapplicationLogFilePathmysql_username
client_secretsandboxmysql_password
redirect_uriaccess_typemysql_port
accounts_url
token_persistence_path
apiBaseUrl
apiVersion
currentUserEmail

注:

  • 如果未指定可选键,则会自动分配其默认值。

如果“token_persistence_path”键未提供任何值,则系统会自动在数据库而不是在文件中设置持久性。在那个阶段,您将必须提供附加的 MySQL 参数。

下面是包含必备键的 Python 字典示例。

config = {
    "client_id":"1000.3RRCIG44JYHV040735GJGV9JA8X0YW",
    "client_secret":"29ac7e2922700ed71e37781647fa9786cf0edf7e32",
    "redirect_uri":"https://www.abc.com",
}

下面是包含所有键的 Python 字典示例。

config = {
    "apiBaseUrl":"https://www.zohoapis.com",
    "apiVersion":"v2",
    "currentUserEmail":"email@gmail.com",
    "sandbox":"False",
    "applicationLogFilePath":"",
    "client_id":"1000.3RRCIG44JYHV040735GJGV9JA8X0YW",
    "client_secret":"29ac7e2922700ed71e37781647fa9786cf0edf7e32",
    "redirect_uri":"https://www.abc.com",
    "accounts_url":"https://accounts.zoho.com",
    "token_persistence_path":"",
    "access_type":"online",
    "mysql_username":"",
    "mysql_password":"",
    "mysql_port":"3306"
}

注:

  • 如果“token_persistence_path”为空,且用户未能提供 mysql 参数,则假定使用默认值。“mysql_username”的默认值将为“root”,密码将留空,“port”将为“3306”。

SQL 数据库持久性

目前,Zoho 在 Python SDK 中仅支持 MySQL 数据库。如果您想要使用数据库持久性,且您已准备好 MySQL DB,则您需要通过“pip”安装以下包。

pip install mysql-connector

安装这些包之后,您可以在配置字段中使用 mysql fields(keys) 来实现持久性。如果 oauth_configuration.properties 文件中提供了 token_persistence_path,那么仅此项仅保存在该文件中。在此情况下,不需要 MySQL。

在所指示的 token_persistence_path 中创建名为 zcrm_oauthtokens.pkl 的空文件。

还没有找到您需要的内容?

请发送邮件给我们:support-crm@zohocorp.com.cn