Zoho CRM连接器

zoho-crm-connector的Python项目详细描述


Zoho CRM连接器

zoho提供了一个python sdk,但是我发现它有点难用,而且看起来有点复杂。 例如,它依赖于mysql。 这个模块更实用一点(它使用重试),它返回结果页面并给出结果。

这基本上是出于我自己的目的,我认为是一个实用的库,所以它有特定的功能来做一些事情,比如创建引号。 此代码基于我在生产中使用的代码,用于与ERP同步帐户、联系人和报价。

安装

pip安装zoho_crm_连接器

使用Zoho CRM进行身份验证

你需要三样东西:

  1. 刷新令牌
  2. 客户ID
  3. 客户机密

这些说明来自zoho的python sdk文档

步骤1:注册zoho客户端

因为zoho crm api是通过oauth2标准认证的,所以您应该向zoho注册您的客户端应用程序。注册应用程序:

访问此页https://accounts.zoho.com/developerconsole。 单击“添加客户端ID”。 输入客户端名称、客户端域和重定向uri。 选择客户端类型为“基于Web”。 点击“创建” 您的客户端应用程序现在已经创建并显示。 单击选项→编辑,可以找到新注册的应用程序的客户端ID和客户端密码。 (选项是右角的三点图标)。

沙盒注意事项:

您可以将沙盒URL作为基本URL传递:

zoho_crm = Zoho_crm(refresh_token=zoho_keys['refresh_token'],
    client_id=zoho_keys['client_id'],
    client_secret=zoho_keys['client_secret'],
    base_url='https://crmsandbox.zoho.com/crm/v2/',
    token_file_dir=tmp_path_factory.mktemp('zohocrm'))

请注意:为沙盒测试创建一个单独的客户端ID。 即使获取授权令牌和刷新令牌的过程完全相同, 似乎需要通过开发人员控制台获得一个不同的客户机id。

步骤2:生成自授权授权授权和刷新令牌

对于自客户端应用程序,应从zoho开发人员控制台(https://accounts.zoho.com/developerconsole)生成自授权的授权令牌

访问https://accounts.zoho.com/developerconsole 单击要为其授权的客户端的选项→自客户端。 在“scope”字段中输入一个或多个(逗号分隔)要授权的有效zoho crm作用域,并选择到期时间。提供“aaaserver.profile.read”作用域和zoho crm作用域。 范围可以是:

ZohoCRM.modules.all,ZohoCRM.users.all,ZohoCRM.org.all,ZohoCRM.settings.all,aaaserver.profile.READ

复制用于备份的授权令牌。它很快就会过期,因此使用它来制作刷新令牌

通过使用下面的url发出post请求,从grant token生成refresh_token 您不能通过在浏览器中输入来完成POST请求:

https://accounts.zoho.com/oauth/v2/token?代码={grant_-token}&redirect_-uri={redirect_-uri}&client_-id={client_-id}&client_-secret={client_-secret}&grant_-type=授权代码

这适用于卷曲:

curl -d"code=1000.2f...68&redirect_uri=https://www.growthpath.com.au/callback&client_id=1000.ZZZZ...99&client_secret=bzz...123&grant_type=authorization_code"-X POST https://accounts.zoho.com/oauth/v2/token

复制刷新令牌…这不会过期,而是授予访问权限的方式

用法

有关一些示例,请参见测试中的test_zoho_crm_connector.py。

测试

需要安装pytest。

警告:testing将访问令牌写入pytest提供的临时目录,在linux上这是/tmp的子目录。 测试需要连接到zoho。设置三个环境变量:

refresh_token': os.getenv('ZOHOCRM_REFRESH_TOKEN'),
client_id': os.getenv('ZOHOCRM_CLIENT_ID'),
client_secret': os.getenv('ZOHOCRM_CLIENT_SECRET')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ByteArrayOutputStream的java解码属性   java S3 SDK在上载时更新单个对象,而不是创建新文件   java hibernate:无法从eclipse连接到DB   java如何在强制转换JComboBox之前检查其类型?   http从Java中的GETPOST请求方法捕获URI、资源名称,如开发人员工具中所示   java在Spring@Bean方法中返回接口的局限性   Java中的Web服务和客户端(使用Eclipse Apache Axis 2自底向上服务)某些代码会引发异常   java spring安全+rest不起作用   java将LinkedList添加到包含LinkedList的LinkedList并更改添加的LinkedList   java是否临时删除对象的属性?   java使用AnimatedGifEncoder类创建的gif图像的部分帧是不透明的   java如何高效地处理maven3时间戳快照?   java向集合对象添加另一项   java如何将动态参数传递给jquery函数   java使用libGdx桌面端口作为Android GLES20的仿真器