持久性

持久性

应用程序中的持久性类实现业务问题的实体。在 Java SDK 中,将提供两个默认持久性类及其实现。另一方面,如果开发者需要特定实现,那么他可通过连接至其相应数据库系统来定义自己的自定义实现。

实现 OAuth 持久性

应用程序获得授权后,可对后续针对 Zoho CRM 的用户数据请求使用 OAuth 访问令牌和刷新令牌。因此,客户端应用需要保存这些令牌。

持久性是通过编写内置 ZohoPersistenceHandler 接口的实现来完成的,该接口具有以下回调方法。

  • saveOAuthData(ZohoOAuthTokens tokens) — 从 Zoho 获取访问令牌和刷新令牌时调用。
  • deleteOAuthTokens() — 保存新收到的令牌之前调用。
  • getOAuthTokens() — 触发获取已保存令牌的请求之前调用。此方法应返回 ZohoOAuthTokens 对象,以便库进行处理。 

我们的 Java SDK 在客户端库中提供 ZohoPersistenceHandler 接口的两个样本实现,如下所示:

可使用库中提供的任意上述接口实现。

ZohoOAuthFilePersistence

ZohoOAuthFilePersistence 使用本地属性文件来读写 OAuth 令牌数据。如果您正在使用此持久性,那么您需要在 oauth_configuration.properties 文件中提供以下属性及其值。

persistence_handler_class=com.zoho.oauth.clientapp.ZohoOAuthFilePersistence
oauth_tokens_file_path= relative path of the "oauthtokens.properties" file in the workspace.

ZohoOAuthDBPersistence

ZohoOAuthDBPersistence 使用自定义 MySQL 持久性。要使用此项,您应确保以下几点。 

  • MySQL 应在同一台机器的默认端口 3306 上运行。
  • 数据库名称应该为zohooauth”。
  • 必须存在包含以下列且名为oauthtokens的表:useridentifier”(varchar)、“accesstoken”(varchar)、“refreshtoken”(varchar) expirytime”(bigint)。

如果您正在使用 ZohoOAuthDBPersistence,那么您需要在 oauth_configuration.properties 文件中提供以下属性和值。

persistence_handler_class=com.zoho.oauth.clientapp.ZohoOAuthDBPersistence
mysql_username=root
mysql_password=

注:

  • ZohoOAuthFilePersistence 实现仅支持存储和刷新单个用户的令牌。因此,如果您的应用仅代表单个用户访问 Zoho API,那么应使用此项。
  • 如果您的应用必须支持多个用户,请使用 ZohoOAuthDBPersistence 或编写您自己的 ZohoPersistenceHandler 实现。

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

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