2016-11-28 42 views
2

我是infusionsoft新手。目前我已經訂閱了contact.addcontact.edit webhooks,但都有「未驗證」狀態。因此,我使用下面的API來驗證它。但我無法驗證它。無法驗證休息HookSubscription in infusionsfoft

https://api.infusionsoft.com/crm/rest/v1/hooks/{key}/verify?access_token={token} 

而且我得到的響應200 OK

爲什麼我無法驗證它?

回答

1
I had successfully verified web hooks with the below way, 

1. resthookManager.php 

    <?php 
session_start(); 
//session_destroy(); 
require_once '../vendor/autoload.php'; 
$infusionsoft = new \Infusionsoft\Infusionsoft(array(
    'clientId' => '', 
    'clientSecret' => '', 
    'redirectUri' => '', 
)); 
// By default, the SDK uses the Guzzle HTTP library for requests. To use CURL, 
// you can change the HTTP client by using following line: 
// $infusionsoft->setHttpClient(new \Infusionsoft\Http\CurlClient()); 
// 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']); 
    $_SESSION['token'] = serialize($infusionsoft->getToken()); 
} 
function resthookManager($infusionsoft) { 
    $resthooks = $infusionsoft->resthooks(); 
    // first, create a new task 
    $resthook = $resthooks->create([ 
     'eventKey' => 'contact.add', 
     'hookUrl' => 'http://infusionsoft.app/verifyRestHook.php' 
    ]); 
    var_dump($resthook); 
    $resthook = $resthooks->find($resthook->id)->verify(); 
    return $resthook; 
} 
if ($infusionsoft->getToken()) { 
    try { 
     $resthook = resthookManager($infusionsoft); 
    } 
    catch (\Infusionsoft\TokenExpiredException $e) { 
     // If the request fails due to an expired access token, we can refresh 
     // the token and then do the request again. 
     $infusionsoft->refreshAccessToken(); 
     // Save the serialized token to the current session for subsequent requests 
     $_SESSION['token'] = serialize($infusionsoft->getToken()); 
     $resthook = resthookManager($infusionsoft); 
    } 
    var_dump($resthook); 
} 
else { 
    echo '<a href="' . $infusionsoft->getAuthorizationUrl() . '">Click here to authorize</a>'; 
} 

2. verifyRestHook.php 

    <?php 
session_start(); 
require_once '../vendor/autoload.php'; 
$infusionsoft = new \Infusionsoft\Infusionsoft(array(
    'clientId' => '', 
    'clientSecret' => '', 
    'redirectUri' => '', 
)); 
// In order to verify the endpoint, we need to return the X-Hook-Secret header. 
// By default, the autoverify() function will set the proper header, but if you 
// pass false as the first argument to autoverify(false) the function will simply 
// return the header value for you to set as you please (handy if you are using 
// a PHP class or framework that manages requests for you 
$infusionsoft->resthooks()->autoverify(); 
return; 

Thanks..