Oauth Hubspot Webhooks:重定向身份验证&;错误的授权类型消息
我正在尝试在Hubspot中添加自定义应用程序。我正在使用PHP。我有:Oauth Hubspot Webhooks:重定向身份验证&;错误的授权类型消息,oauth,webhooks,hubspot,Oauth,Webhooks,Hubspot,我正在尝试在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'
- 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将使用传递给“authorization”URL上的的参数“code”来验证授权。然而,我不断地发现这个错误:
string(171){“status”:“BAD_GRANT_TYPE”,“message”:“缺少或未知的授予类型”,“correlationId”:“f0508752-24bc-40e4-b0bc-51e358459653”,“requestId”:“96044613D4E4A5AAB7356FAB0401E5C”}“
- 我有相同的错误响应,这似乎是一个编码问题
我与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;