novaksolutions/infusionsoft-php-sdk

更好的PHP Infusionsoft SDK

dev-master 2022-06-02 05:42 UTC

README

Novak Solutions 创建了我们的 Infusionsoft PHP SDK,以便更容易地为 Infusionsoft 平台进行开发。该 SDK 利用 Infusionsoft API,但绕过了其中的一些 已知问题

注意:这**不是**官方 SDK。 官方的 Infusionsoft 创建的 SDK 在这里:https://github.com/infusionsoft/infusionsoft-php

为什么使用我们的 SDK 而不是官方的一个呢?

  • 没有臃肿的依赖项。 我们没有任何依赖项,但我们最近添加了 ForceUTF8,如果你的服务器有 PHP 和 cURL,并且你可以使用 composer 添加 ForceUTF8 依赖项,那么你就没问题了!
  • 代码补全。 我们添加了所有必要的 PHPDoc 注释,因此在流行的编辑器(如 Eclipse 和 PhpStorm)中代码补全将正常工作。
  • 自动重试。 在安全的情况下(即更新和删除),将自动重试失败的 API 调用。
  • 自动处理 XML-RPC。 你的请求和响应将自动编码和解码。
  • 自动选择正确的方法。 保存记录更容易。SDK 会自动选择是执行插入还是更新,这取决于你是在处理新记录还是现有记录。
  • 面向未来! 即使 Infusionsoft 在未来删除了一个字段,该 SDK 仍然可以工作。

完全支持

Infusionsoft PHP SDK 完全受支持。如果您发现错误或遇到问题,请提交问题,我们将修复它。

我们还感谢社区贡献。要贡献:Fork SDK 仓库,做出你的更改,然后提交一个 pull 请求。

安装

我们保持 master 分支可用于生产。要安装,只需将 SDK 克隆到方便的文件夹中。例如

git clone [email protected]:novaksolutions/infusionsoft-php-sdk.git

如果您收到 "Permission denied (publickey)." 错误,您没有正确设置您的 github ssh 密钥。您可以回退到以下

git clone https://github.com/novaksolutions/infusionsoft-php-sdk.git

您还需要将 Infusionsoft/config.sample.php 复制到 Infusionsoft/config.php。编辑此文件并添加您的应用程序名称和 API 密钥

##OAuth2 使用

以下示例代码显示了如何使用 OAuth2 进行身份验证。这将自动将您的访问和刷新令牌保存到当前目录中名为 infusionsoft-tokens.php 的文件中。我们将其存储在一个仅包含注释的空 php 文件中,这样除非您没有运行 php,否则没有人可以访问您的服务器上的此文件。

// This makes troubleshooting MUCH easier during testing. Remove these lines in production.
ini_set('display_errors', 1);
error_reporting(E_ALL);

// Load Infusionsoft
require 'Infusionsoft/infusionsoft.php';

// Load config file (copy config.sample.php to config.php and put your clientid (key) and secret in.
require 'config.php';

// Sets the redirect url to the current url
Infusionsoft_OAuth2::$redirectUri = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

// When this is called, it will process the authentication response, convert the OAuth2 GET params to your access and refresh tokens.  And then save them.
Infusionsoft_OAuth2::processAuthenticationResponseIfPresent();

// If you don't specify a hostname, connect() will load the hostname automatically from the saved file.  Note, this library does support multiple apps, so, if you authenticate to more then one app, you really should specify the app to connect to.
$app = Infusionsoft_App::connect();

// If we just got back from the OAuth page...
if(!$app->hasTokens()){
    header("Location: " . Infusionsoft_OAuth2::getAuthorizationUrl()); //Send To OAuth Page...
    die();
}

$results = Infusionsoft_DataService::query(new Infusionsoft_Contact(), array('FirstName' => '%'), 2);

?>
<pre><?php var_dump($results); ?></pre>

旧版 API 密钥使用

为了帮助您入门,我们创建了一个屏幕录像,将引导您使用 SDK 在您的 Infusionsoft 应用中创建联系人。您可以在 YouTube 上找到视频:使用 Novak Solutions SDK 与 Infusionsoft API

您还可以在我们的 GitHub wiki 的 示例 页面上找到许多实际的代码示例。

您的项目需要包含 Infusionsoft/infusionsoft.php,这是一个自动加载所需任何类的引导器。例如

<?php

require_once('Infusionsoft/infusionsoft.php');

请参阅example.php以获取一个非常基本的用法示例。更多示例可以在Infusionsoft/examples/文件夹中找到。

WordPress

如果您想在WordPress中使用SDK或与WordPress插件一起使用,请使用Infusionsoft SDK插件。它在WordPress.org插件目录中列出,因此您可以轻松将其安装到任何WordPress博客。我们会在SDK更新时定期更新此插件,以确保您始终获得最新的错误修复和新功能。

使用Infusionsoft SDK插件将允许您的插件或自定义代码与使用Infusionsoft PHP SDK的其他插件协同工作。

许可证

Infusionsoft PHP SDK使用MIT许可证。它简单易懂,对您使用SDK的限制几乎为零。

您可以在任何其他项目中使用Infusionsoft PHP SDK(甚至是商业项目),只要保留版权头信息。

此许可证的详细信息包含在MIT-LICENSE.txt文件中,并必须包含在SDK的所有副本中。