Всем здравствуйте. Прошу помочь решить эту (уже до смерти надоевшую) ошибку. После успешного получения кода авторизации, я вызываю POST запрос для доступа к токену (access_token). Но запрос возвращает мне "invalid_client", весь интернет прощарила, все попробовала, но ничего не помогло. Та же ошибка. И написала в support ZohoMail APİ. Ничего не ответили:( Также прочитала и всю
документацию ZohoMail APİ досконально, а также рассмотрела
документацию oauth2.0 protocol. И вроде согласно этой документации все у меня правильно. И php код вроде рабочий, но может я передаю не те параметры? И ксати, возможно ли эта ошибка из-за пробной подписки? Прошу и вас, знатоков этого дела, рассмотреть мой код, может кто-то найдет мою ошибку. Мне нужно его срочно решить:( Буду вам очень благодарна. Заранее спасибо :)
public function get_access_token()
{
$headers = array(
/*'Authorization: Basic ' . $this->client_secret,*/
/* 'Content-Type: application/x-www-form-urlencoded'*/
);
$taskurl = 'https://accounts.zoho.com/oauth/v2/token';
$cdata = array(
'code' => $this->zoho_oauth_code,
'redirect_uri' => 'https://testingapi.ml/callback',
'grant_type' => 'authorization_code',
'client_id' => $this->client_id,
'client_secret' => $this->client_secret,
'scope' => 'ZohoMail.accounts.all,ZohoMail.organization.accounts.all,ZohoMail.organization.domains.all',
'state' => $this->generateRandomString()
);
$curlresult = $this->docurl($taskurl, $cdata, $headers);
return $curlresult;
}
public function docurl($taskurl, $cdata, $headers, $method = 'post',$sendjson=true)
{
$ch = curl_init();
if ($method == 'get') {
if ($cdata) {
$query = '?' . http_build_query($cdata);
$taskurl .= $query;
}
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
} elseif ($method == 'delete') {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
} elseif ($method == 'put') {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
} elseif ($method == 'patch') {
if($sendjson) $cdata = json_encode($cdata);
curl_setopt($ch, CURLOPT_POSTFIELDS, $cdata);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
} else {
if($sendjson) {
$cdata = json_encode($cdata);
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $cdata);
curl_setopt($ch, CURLOPT_POST, true);
/* curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);*/
}
curl_setopt($ch, CURLOPT_URL, $taskurl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec($ch);
$information = curl_getinfo($ch);
curl_close($ch);
$resj = json_decode($res);
return $resj;
}