【问题标题】:Unable to verified Rest HookSubscription in infusionsfoft无法在 infusionsoft 中验证 Rest Hook 订阅
【发布时间】:2016-11-28 09:55:12
【问题描述】:

我是 infusionsoft 的新手。目前我已经订阅了contact.addcontact.edit webhooks,但两者都处于“未验证”状态。因此,我使用下面的 api 来验证它。但我无法验证。

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

我也得到 200 OK 的响应。

为什么我无法验证?

【问题讨论】:

    标签: php rest api webhooks infusionsoft


    【解决方案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..
    

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 2019-03-30
      • 2014-01-19
      • 2021-09-23
      • 2015-12-10
      • 2013-08-20
      相关资源
      最近更新 更多