Задать вопрос
@syusifli
Backend PHP Developer

Почему выходит ошибка «invalid _client» при запросе доступа к токену в Oauth2 ZohoMail API?

Всем здравствуйте. Прошу помочь решить эту (уже до смерти надоевшую) ошибку. После успешного получения кода авторизации, я вызываю 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;
    }


5ce3f12983d08451733494.png
  • Вопрос задан
  • 340 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы