V2 API的OAuth 2.0-概述

Zoho CRM API使用OAuth2.0协议进行身份验证。它使用授权码授权类型获取授予令牌(代码)。这种授权类型允许您与任何应用程序共享特定的数据,同时保持用户名和密码的私密性。该协议为用户提供了一种安全、简便的身份验证方法。

为什么使用OAuth2?

  • 您可以随时撤消客户对应用程序的访问。

  • 无需向客户公开凭据。

  • 即使客户端被黑客攻击,也不会显示任何信息,因为访问令牌是针对单个应用程序而不是整个客户端发出的。

  • 可以应用特定的范围来限制或提供对客户端某些数据的访问。对于每个客户端应用程序,它都是不同的。

OAuth2.0是如何运作的?

术语

在开始使用Zoho CRM API之前,需要了解以下一些术语。

受保护资源

Zoho CRM资源,如线索、联系人、商机等。

资源服务器

托管受保护资源的Zoho CRM服务器。

资源所有者

您帐户的任何最终用户,可以授予对受保护资源的访问权。

客户端

向资源服务器发送请求以代表最终用户访问受保护资源的应用程序。

客户端ID

从连接的应用程序生成的使用者密钥。

客户端密钥

从连接的应用程序生成的使用者密钥。

认证服务器

授权服务器提供了必要的证书 (例如访问和刷新令牌) 给客户端。在本例中,它将是Zoho CRM授权服务器。

认证码

A 临时令牌由授权服务器创建并通过浏览器发送到客户端。客户端将此代码发送到授权服务器,以便获得访问和刷新令牌。

令牌

访问令牌

发送到资源服务器的令牌用来访问此用户受保护的资源。访问令牌提供对Zoho CRM API的安全临时访问,应用程序使用该令牌向连接的应用程序发出请求。每个访问令牌仅在一个小时内有效,并且只能用于范围中描述的一组操作。

刷新令牌

使用此令牌可用于获取新的访问令牌。此令牌的生命周期不受限制,直到最终用户撤消它为止。

作用域

Zoho CRM API使用选定的作用域,它控制客户端应用程序可以访问的资源类型。令牌通常使用不同的范围创建,以确保改进的安全性。例如,您可以生成一个作用域来创建或查看一个线索,或者查看元数据等等。
作用域包含三个参数——服务名称、作用域名称和操作类型。 定义范围的格式是scope=service_name.scope_name.operation_type

示例:

https://accounts.zoho.com.cn/oauth/v2/auth?scope=ZohoCRM.modules.ALL

这里,ZohoCRM是服务API名称,模块是范围名称,所有都是操作类型。

可用的作用域

作用域名称关联的方法
usersusers.all
orgorg.all
settingssettings.all, settings.territories, settings.custom_views, settings.related_lists, settings.modules, settings.tab_groups, settings.fields, settings.layouts, settings.macros, settings.custom_links, settings.custom_buttons, settings.roles, and settings.profiles
modulesmodules.all, modules.approvals, modules.leads, modules.accounts, modules.contacts, modules.deals, modules.campaigns, modules.tasks, modules.cases, modules.events, modules.calls, modules.solutions, modules.products, modules.vendors, modules.pricebooks, modules.quotes, modules.salesorders, modules.purchaseorders, modules.invoices, modules.custom, modules.dashboards, modules.notes, modules.activities, modules.search

组作用域

组作用域提供对用户可以在记录上执行的所有功能的完整访问。例如,组作用域允许用户读取、创建、更新和删除所有模块中的记录。

示例:

https://accounts.zoho.com.cn/oauth/v2/auth?scope=ZohoCRM.modules.ALL,ZohoCRM.settings.ALL&client_id=
{client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}

在上面的示例中,用户可以访问客户端ZohoCRM帐户中的所有模块.

其他的例子有

  • scope=ZohoCRM.modules.READ(Read-only permission)

  • scope=ZohoCRM.modules.CREATE

  • scope=ZohoCRM.modules.UPDATE

  • scope=ZohoCRM.modules.DELETE

单独的作用域

特定的作用域用来访问特定模块中的数据而不用访问其它模块。

https://accounts.zoho.com.cn/oauth/v2/auth?scope=ZohoCRM.modules.leads.ALL,ZohoCRM.modules.deals.ALL,ZohoCRM.settings.ALL&
client_id={client_id}&response_type=code&
access_type={"offline"or"online"}&redirect_uri={redirect_uri}

上述作用域只允许用户访问来自客户端ZohoCRM帐户的线索和商机模块。

此外,您还可以为每个模块设置特定的权限,比如读取、创建、更新或删除。例如:

  • scope=ZohoCRM.modules.leads.READ(Read-only permission)

  • scope=ZohoCRM.modules.leads.CREATE

  • scope=ZohoCRM.modules.leads.UPDATE

  • scope=ZohoCRM.modules.leads.DELETE

重要

用户访问令牌必须保密,因为它定义了您使用的API的类型。不要在任何公共论坛、公共存储库或网站的客户端代码(如HTML或JavaScript)上公开访问令牌。将其公开可能会导致数据被盗、丢失或崩溃。