初始化应用程序
现在,为您的应用定义配置文件/字典之后,可初始化该应用。
生成授权令牌
对于单个用户(自授权)
对于独立客户端应用,应通过 Zoho 开发者控制台 (https://accounts.zoho.com/developerconsole) 生成自授权的授权令牌。开发者控制台有一个选项用于直接为用户生成授权令牌。如果您的应用计划使用一个 CRM 用户的凭证完成所有操作或进行开发测试,那么此选项可能很好用。
- 登录用户帐户。
- 请访问 https://accounts.zoho.com/developerconsole
- 点击要授权的客户端的选项 → 自主客户端选项。
- 在“范围”字段中输入您要授权的一个或多个(各项之间用逗号分隔)有效 Zoho CRM 范围,然后选择到期日期。输入“aaaserver.profile.READ”范围及 Zoho CRM 范围。
- 复制屏幕上显示的授权令牌。
- 借助创建带有以下 URL 的 POST 请求,通过授权令牌生成刷新令牌:
https://accounts.zoho.com/oauth/v2/token?code={grant_token}&redirect_uri={redirect_uri}&client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code
- 复制刷新令牌以进行备份。
注:
- 所生成令牌仅在您生成该授权令牌时选择的约定期限内有效。因此,应在该时间范围内生成访问令牌和刷新令牌。
- 必须在同一 Zoho 帐户(即 - 登录)的开发者控制台内完成 OAuth 客户端注册和授权令牌生成操作。
对于多个用户
对于多个用户,由您的客户端应用负责根据尝试登录的用户生成授权令牌。
- 您的应用程序的 UI 必须具有“使用 Zoho 登录”选项以打开 Zoho 的授权令牌 URL,它将提示您输入用户的 Zoho 登录凭证。
- 用户成功登录时,该授权令牌将作为参数发送至您的已注册重定向 URL。
生成访问令牌
可通过授权令牌或刷新令牌生成访问令牌。遵循下面给出的两种方法之一就足够了。
通过授权令牌
应通过您的主类执行以下代码片段以获取访问令牌。
"ZCRMRestClient.Initialize();
ZohoOAuthClient client = ZohoOAuthClient.GetInstance();
string grantToken = <paste_grant_token_here>;
ZohoOAuthTokens tokens = client.GenerateAccessToken(grantToken);
string accessToken = tokens.AccessToken;
string refreshToken = tokens.RefreshToken;"
请将所生成的授权令牌粘贴到所指示的字符串中。它是仅一次性过程。
如果有多个用户使用该应用程序,您需要记下以下项:
- 为便于 SDK 确定发出请求的特定用户,在对 SDK 进行实际方法调用之前,应通过以下代码片段给出请求者的电子邮件地址。
ZCRMRestClient.SetCurrentUser("provide_current_user_email_here")
如果是单个用户,则可通过上面的代码设置当前用户电子邮件,或在 app.config 文件中的 zcrm_configuration 部分使用键值 currentUserEmail 作为一次性配置。
通过刷新令牌
应通过您的主类执行以下代码片段以获取访问令牌。
ZCRMRestClient.Initialize();
ZohoOAuthClient client = ZohoOAuthClient.GetInstance();
string refreshToken = <paste_refresh_token_here>;
string userMailId = <provide_user_email_here>;
ZohoOAuthTokens tokens = client. GenerateAccessTokenFromRefreshToken(refreshToken,userMailId);
请将所生成的刷新令牌粘贴到所指示的字符串中。它是仅一次性过程。
注:
- 以上代码片段仅对每个授权令牌生效一次。成功执行此代码片段后,所生成访问令牌和刷新令牌将通过保存 handler 类保存下来。
- 保存 OAuth 令牌后,后续 API 令牌将使用所保存的访问令牌和刷新令牌。必要时,该 SDK 将负责使用刷新令牌来刷新访问令牌。
启动应用
每次启用您的应用时,该 SDK 需要调用以下代码行。
"ZCRMRestClient.Initialize();"
注:
- 应从 c# 应用程序的 main 类调用此方法以启动该应用程序。调用它时不应出现任何异常。
SDK 还允许自定义初始化,覆盖来自 app.config 文件的数据。或者,当不需要配置文件时,您也可以覆盖。自定义初始化场景为:
"public static Dictionary<string, string> config = new Dictionary<string, string>()
ZCRMRestClient.Initialize(config);"
注:
- 初始化 SDK 之后,您可以使用 SDK 的任何 API 来获取适合的结果。