fungku/hubspot-php

此包已被废弃且不再维护。作者建议使用ryanwinchester/hubspot-php包。

HubSpot PHP API 客户端

4.0.1 2022-01-13 10:34 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
]);

// Then you can call a resource 
// When referencing resources, use camelCase

$hubspot->contactlists

有关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 速率限制的工作方式

$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(BlogComments)
  • CMS博客文章API(BlogPosts)
  • CMS博客主题API(BlogTopics)
  • CMS域名API
  • CMS文件API(Files)
  • CMS HubDB API(HubDB):已更新
  • CMS布局API
  • CMS页面发布API(Pages)
  • 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