配置
开始创建 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_secret 和 redirect_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_id | applicationLogFilePath | mysql_username |
client_secret | sandbox | mysql_password |
redirect_uri | access_type | mysql_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 的空文件。