【问题标题】:Hubspot Webhooks: Redirect Auth & BAD_GRANT_TYPE MessageHubspot Webhook:重定向身份验证和 BAD_GRANT_TYPE 消息
【发布时间】:2020-03-04 14:32:02
【问题描述】:

我正在尝试在 Hubspot 中添加自定义应用程序。我正在使用 PHP。我有:

  • Hubspot 应用程序
  • 有效的 webhook URL
  • 带有以下代码的重定向 URL

    $url = 'https://api.hubapi.com/oauth/v1/token';
    $code =  $_GET['code']; // Getting code parameter from redirect URL
    //echo $code;
    $fields = array();
    $fields['grant_type'] = 'authorization_code'; // Have also tried 'refresh_token' - same result
    $fields['client_id'] = '{CLIENT_ID}';
    $fields['client_secret'] = '{CLIENT_SECRET}';
    $fields['redirect_uri'] = '{REDIRECT_URI}';
    $fields['code'] = trim($code);
    //$fields['refresh_token'] = trim($code);  // Have also tried 'refresh_token' - same result
    
    $request_type = 'POST';
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', $headers));
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, POST); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_POST, 1);
    if($fields){
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $return = curl_exec($ch);
    curl_close($ch);
    echo var_dump ($return);    
    
  • 我的理解是 Hubspot 将使用传递给“授权”URL 上的“代码”参数来验证授权。但是,我不断收到此错误:

    string(171) "{"status":"BAD_GRANT_TYPE","message":"missing or unknown grant type","correlationId":"f0508752-24bc-40e4-b0bc-51e358459653","requestId":"96044613d4e4a5aab7356fab04001e5c"}"

【问题讨论】:

    标签: oauth webhooks hubspot


    【解决方案1】:

    我有同样的错误响应,这似乎是一个编码问题。

    我用 Postman 调试了一下,发现下面的代码可以工作:

    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://api.hubapi.com/oauth/v1/token",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => "grant_type=authorization_code&code=string&redirect_uri=string&client_id=string&client_secret=string",
      CURLOPT_HTTPHEADER => array(
        "content-type: application/x-www-form-urlencoded",
        "Cookie: __cfduid=someidfrompostman"
      ),
    ));
    
    $response = curl_exec($curl);
    
    curl_close($curl);
    echo $response;
    

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 2021-11-27
      • 2021-04-14
      • 2012-05-01
      • 2015-10-01
      • 1970-01-01
      • 2019-01-25
      • 2017-06-06
      • 2013-02-14
      相关资源
      最近更新 更多