mctekk / zohocrm
用于与 Zoho CRM API 交互的包装器
0.1.1
2020-06-07 02:45 UTC
Requires
- php: >=7.2
- ext-redis: >=2.2.7
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.2
- codeception/module-filesystem: ^1.0
- codeception/module-phalcon: ^1.0
- codeception/module-phpbrowser: ^1.0
- codeception/verify: *
- fzaninotto/faker: ^1.9
- odan/phinx-migrations-generator: ^5
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: 1.*
- symfony/var-dumper: ^4.3@dev
- vlucas/phpdotenv: ^4.1
This package is auto-updated.
Last update: 2024-09-08 02:30:50 UTC
README
Zoho CRM 库是 Zoho API 的简单包装
在 MC,我们与 Zoho 的工作很多,我们发现自己一遍又一遍地重复相同的模式,因此我们构建了这个库。
安装
使用 composer,执行以下命令以将需求添加到您的 composer.json
$ composer require mctekk/zohocrm:^0.1
让我们开始吧
Zoho API V2 已经改变了它们处理连接到 API 的方式,现在它使用 OAuth 而不是仅使用简单的私钥和公钥。因此,为了使此包与您的应用程序一起工作,您必须执行以下操作
- 通过其开发者控制台注册 Zoho 客户端 [https://api-console.zoho.com/]
- 请确保选择基于 Web 的应用程序并遵循此教程 https://www.zoho.com/crm/developer/docs/api/register-client.html
- 一旦您有了客户端 ID 和其密钥,我们将需要生成一个 refresh_token
- 要生成 refresh_token,您需要访问,将 {client_id} 替换为客户端 ID,将 redirect_uri 替换为您配置的客户端值
- 此 URL 将重定向到客户端 URI 并带有查询字符串代码
- 将代码查询字符串取出来,并通过 https://accounts.zoho.com/oauth/v2/token 发送 POST 请求
- grant_type : authorization_code
- client_id : {client_id}
- client_secret : {client_secret}
- redirect_uri : {redirect_uri}
- code : {code}
- 此最终请求将为您提供 refresh_token。
- 请记住,refresh_token 可以认为是您正在与之交互的 Zoho 账户的标识符
- 在 .env 上设置 client_id、client_secret 和 refresh_token,然后该包将处理其余部分
待办事项 在未来的版本中,我们将直接作为 PHP 脚本添加 refresh_token 生成器
<?php use Zoho\CRM\ZohoClient; $ZohoClient = new ZohoClient(); // Make the connection to zoho api $ZohoClient->setAuthRefreshToken(getenv('ZOHO_AUTH_REFRESH_TOKEN')); $ZohoClient->setZohoClientId(getenv('ZOHO_CLIENT_ID')); $ZohoClient->setZohoClientSecret(getenv('ZOHO_CLIENT_SECRET')); $refresh = $ZohoClient->generateAccessTokenByRefreshToken(); //or with redis $ZohoClient->manageAccessTokenRedis($redis); $this->zohoClient->setModule('Leads'); $lead = new Lead(); $leadRequest = [ 'First_Name' => 'Test', 'Last_Name' => 'Zoho', 'Phone' => '000000000', 'Email' => 'testzoho@mctekk.com' ]; $response = $this->zohoClient->insertRecords( $leadRequest, ['wfTrigger' => 'true'] ); $response->getResponseData();
上述 $request 数组的值可以从 POST 中获取,如果您在着陆页中使用表单 :D,只需确保数组中所有键(HTML 字段的名称)都是实体 Lead 的有效属性,默认属性可以在文档 此处 找到,或者确保这些属性存在于您的账户中,如果您在 Zoho 上自定义了 Lead;以下约定如下
- 字段名称不是 CamelCase。
- 带空格的字段名称,空格由下划线替换。
- 需要从数组中清除(unset)所有不属于实体的值,如果您不想这样做,可以创建另一个干净的数组。
使用 .eu 域(即您的 CRM URL 为 crm.zoho.eu,而不是 crm.zoho.com)的用户应在实例化 ZohoClient 后调用 setEuDomain()
,例如
$ZohoClient = new ZohoClient(); // Make the connection to zoho api $ZohoClient->setAuthRefreshToken(getenv('ZOHO_AUTH_REFRESH_TOKEN')); $ZohoClient->setZohoClientId(getenv('ZOHO_CLIENT_ID')); $ZohoClient->setZohoClientSecret(getenv('ZOHO_CLIENT_SECRET')); $refresh = $ZohoClient->generateAccessTokenByRefreshToken(); $ZohoClient->setEuDomain(); $ZohoClient->setModule('Leads'); // Set the module