Infusionsoft:是否可以通过 API 呼叫添加新联系人?

Infusionsoft: Is it possible to add a new contact through an API call?

我有 2 个 CRM - 一个是基于 Infusionsoft 构建的,另一个是自定义的。

我想在这两个 CRMS 之间同步联系人。从定制的到 Infusionsoft 的只是单向的。因此,当客户在自定义 CRM 上注册时,我想将 his/her 信息添加到 Infusionsoft CRM 中,而不让客户意识到 =)

Infusionsoft API 使用 oAuth2 身份验证,这在理论上意味着“I have to ask the user to enter my username and password for Infusionsoft to get them added to my Infusionsoft CRM”——据我了解他们 API,这是荒谬的。

我确实相信我正在尝试做的事情并非不可能......也许我错了。在最坏的情况下,我可以使用 PhantomJS 来通过 oAuth 身份验证。如果存在任何其他解决方案,我不想使用 PhantomJS。我需要 Infusionsoft 专家的帮助。请指教。可能吗?

每个 Infusionsoft 帐户都有一个 API 密钥,允许您调用 API。

以下是获取 Infusionsoft 应用程序的 API 密钥的说明。 http://ug.infusionsoft.com/article/AA-00442/0/Infusionsoft-API-Key.html

获得密钥后,您可以使用 PHP SKD 拨打电话和添加联系人。这是 infusionosft php SDK 的 link: https://github.com/infusionsoft/infusionsoft-php

这里是添加联系人的 link 文档以及 php 示例: https://developer.infusionsoft.com/docs/xml-rpc/#contact

https://github.com/infusionsoft/API-Sample-Code/blob/master/PHP/ContactService-Sample.php

编辑 看起来他们最终会在未来取消不需要您使用 oauth 的帐户级密钥。 https://developer.infusionsoft.com/2014/07/03/simplifying-infusionsoft-authentication-with-oauth2/

这里有很多关于如何将 oauth 与 Infusionsoft 结合使用的示例: https://developer.infusionsoft.com/docs/xml-rpc/#contact

点击右侧的PHP,您将看到如何获取令牌并与API

建立联系

github 中的 README 中还有更多示例:

https://github.com/infusionsoft/infusionsoft-php/blob/master/README.md

身份验证:

$infusionsoft = new \Infusionsoft\Infusionsoft(array(
    'clientId'     => 'XXXXXXXXXXXXXXXXXXXXXXXX',
    'clientSecret' => 'XXXXXXXXXX',
    'redirectUri'  => 'http://example.com/',
));

// If the serialized token is available in the session storage, we tell the SDK
// to use that token for subsequent requests.
if (isset($_SESSION['token'])) {
    $infusionsoft->setToken(unserialize($_SESSION['token']));
}

// If we are returning from Infusionsoft we need to exchange the code for an
// access token.
if (isset($_GET['code']) and !$infusionsoft->getToken()) {
    $infusionsoft->requestAccessToken($_GET['code']);
}

if ($infusionsoft->getToken()) {
    // Save the serialized token to the current session for subsequent requests
    $_SESSION['token'] = serialize($infusionsoft->getToken());

    // MAKE INFUSIONSOFT REQUEST
} else {
    echo '<a href="' . $infusionsoft->getAuthorizationUrl() . '">Click here to authorize</a>';
}

实际上,在oAuth2 中,您不需要每次都要求您的客户进行身份验证。只有应用程序的所有者需要验证一次。它确实涉及存储令牌(在数据库中或可能在 php 文件中),以便您可以刷新令牌,因为令牌会在 8 小时后过期。

以上代码是正确的,但它不存储令牌,因此您需要在会话关闭后进行身份验证。

http://community.infusionsoft.com/showthread.php/19009-OAuth2-unattended-authentication-process?highlight=storing+token

这很好 link 可以帮助您走上正确的道路,讨论为您想要的流程类型存储令牌。