tschope/hubspot-php

HubSpot PHP API 客户端

v2.0.6 2020-09-16 11:56 UTC

README

Version Total Downloads Build Status License

Hubspot是一款营销、销售和服务软件,可以帮助您的业务在没有妥协的情况下增长。因为“对业务有利”也意味着“对客户有利”。

设置

Composer

composer require "hubspot/hubspot-php"

示例应用

链接

快速入门

使用工厂示例

以下所有示例都假设这一步骤。

$hubspot = SevenShores\Hubspot\Factory::create('api-key');

// OR create with OAuth2 access token

$hubspot = SevenShores\Hubspot\Factory::createWithOAuth2Token('access-token');

// OR instantiate by passing a configuration array.
// The only required value is the 'key'

$hubspot = new SevenShores\Hubspot\Factory([
  'key'      => 'demo',
  'oauth2'   => 'false', // default
]);

有关API密钥的更多信息,请参阅此处,以及有关访问令牌的更多信息,请参阅此处

注意:您可以通过在客户端创建过程中传递以下选项来阻止此包提供的任何错误处理:(也适用于Factory::create()Factory::createWithOAuth2Token()

$hubspot = new SevenShores\Hubspot\Factory([
  'key'      => 'demo',
],
null,
[
  'http_errors' => false // pass any Guzzle related option to any request, e.g. throw no exceptions
],
false // return Guzzle Response object for any ->request(*) call
);

http_errors设置为false,您将不会收到任何异常,但只有纯响应。有关可能的选项,请参阅http://docs.guzzlephp.org/en/latest/request-options.html

API客户端包含中间件以实现速率和并发限制的实现。

它提供了一种在失败的请求中启用重试的功能,这些请求的状态为429或500。您可以在此处了解更多有关在HubSpot API速率限制内工作的信息here

$handlerStack = \GuzzleHttp\HandlerStack::create();
$handlerStack->push(
    \SevenShores\Hubspot\RetryMiddlewareFactory::createRateLimitMiddleware(
        \SevenShores\Hubspot\Delay::getConstantDelayFunction()
    )
);

$handlerStack->push(
    \SevenShores\Hubspot\RetryMiddlewareFactory::createInternalErrorsMiddleware(
        \SevenShores\Hubspot\Delay::getExponentialDelayFunction(2)
    )
);

$guzzleClient = new \GuzzleHttp\Client(['handler' => $handlerStack]);

$config = [
    'key'      => 'demo',
    'oauth2'   => false,
];

$hubspot = new \SevenShores\Hubspot\Factory(config, new \SevenShores\Hubspot\Http\Client($config, guzzleClient));

获取单个联系人

$contact = $hubspot->contacts()->getByEmail("test@hubspot.com");

echo $contact->properties->email->value;

遍历所有联系人的分页

// Get an array of 10 contacts
// getting only the firstname and lastname properties
// and set the offset to 123456
$response = $hubspot->contacts()->all([
    'count'     => 10,
    'property'  => ['firstname', 'lastname'],
    'vidOffset' => 123456,
]);

处理数据非常简单!

foreach ($response->contacts as $contact) {
    echo sprintf(
        "Contact name is %s %s." . PHP_EOL,
        $contact->properties->firstname->value,
        $contact->properties->lastname->value
    );
}

// Info for pagination
echo $response->{'has-more'};
echo $response->{'vid-offset'};

或者如果您更喜欢使用数组访问?

foreach ($response['contacts'] as $contact) {
    echo sprintf(
        "Contact name is %s %s." . PHP_EOL,
        $contact['properties']['firstname']['value'],
        $contact['properties']['lastname']['value']
    );
}

// Info for pagination
echo $response['has-more'];
echo $response['vid-offset'];

现在具有实现PSR-7 ResponseInterface的响应方法

$response->getStatusCode()   // 200;
$response->getReasonPhrase() // 'OK';
// etc...

无工厂示例

<?php

require 'vendor/autoload.php';

use SevenShores\Hubspot\Http\Client;
use SevenShores\Hubspot\Resources\Contacts;

$client = new Client(['key' => 'demo']);

$contacts = new Contacts($client);

$response = $contacts->all();

foreach ($response->contacts as $contact) {
    //
}

内置工具示例

<?php

require 'vendor/autoload.php';

use SevenShores\Hubspot\Utils\OAuth2;

$authUrl = OAuth2::getAuthUrl(
    'clientId',
    'http://localhost/callaback.php',
    'contacts'
);

或使用工厂

<?php

require 'vendor/autoload.php';

use SevenShores\Hubspot\Utils;

$authUrl = Utils::getFactory()->oAuth2()->getAuthUrl(
    'clientId',
    'http://localhost/callaback.php',
    'contacts'
);

状态

如果您看到您想要但未计划的内容,请提出问题,我有很大可能会添加它。

  • 分析API
  • 日历API:更新
  • 公司API:更新
  • 公司属性API:更新
  • 联系人API:更新
  • 联系人列表API:更新
  • 联系人属性API:更新
  • 实时聊天小部件API(前端)
  • CMS博客API(博客):更新
  • CMS博客作者API(BlogAuthors):更新
  • CMS博客评论API(评论)
  • CMS博客文章API(BlogPosts)
  • CMS博客主题API(BlogTopics)
  • CMS域名API
  • CMS文件API(文件)
  • CMS HubDB API(HubDB):更新
  • CMS布局API
  • CMS页面发布API(页面)
  • CMS网站地图
  • CMS网站搜索API
  • CMS模板API
  • CMS URL 映射API
  • CRM关联API
  • CRM扩展API
  • CRM对象属性API(ObjectProperties)🆕
  • CRM流程API(CrmPipelines)
  • 交易API
  • 交易流程API:弃用
  • 交易属性API:更新
  • 电子商务桥接API:更新
  • 电子邮件订阅API:更新
  • 电子邮件事件API:更新
  • 参与度API
  • 事件API
  • 表单API:更新
  • 行项目API 🆕
  • 营销电子邮件API
  • 所有者API:更新
  • 产品API 🆕
  • 社交媒体API
  • 票务API
  • 时间线API:更新
  • 跟踪代码API
  • 交易邮件API
  • 工作流API:更新
  • Webhooks API