PHP SDK: generateAccessTokenFromRefreshToken returning NULL

PHP SDK: generateAccessTokenFromRefreshToken returning NULL

Hello all,

I'm having problems generating the access token from refresh token when using the generateAccessTokenFromRefreshToken function.

Firstly, I'm using CURL to receive both the access_token and refresh_tokens. Maybe this is where I am going wrong, as the access token is already successfully created?

If anyone could help, that would be great. Please see code below:

  1.   $curl = curl_init();

  2.   curl_setopt_array($curl, array(
  3.     CURLOPT_URL => "https://accounts.zoho.eu/oauth/v2/token?client_id=" . $clientId . "&client_secret=" . $clientSecret . "&redirect_uri=" . $redirectUri . "&code=" . $grantToken . "&grant_type=authorization_code",
  4.     CURLOPT_RETURNTRANSFER => true,
  5.     CURLOPT_ENCODING => "",
  6.     CURLOPT_MAXREDIRS => 10,
  7.     CURLOPT_TIMEOUT => 30,
  8.     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  9.     CURLOPT_CUSTOMREQUEST => "POST",
  10.     CURLOPT_HTTPHEADER => array(
  11.       "Accept: */*",
  12.       "Accept-Encoding: gzip, deflate",
  13.       "Cache-Control: no-cache",
  14.       "Connection: keep-alive",
  15.       "Content-Length: ",
  16.       "Cookie: a5581ceb1f=0f0996ff9f95d2f31a5b3a5b981d1903; iamcsr=046c84ea-a41e-4a60-9542-701f04a748ce",
  17.       "Host: accounts.zoho.eu",
  18.       "Postman-Token: 5a8433a2-851d-429a-9fe5-cac34d916478,55819d99-d09c-47d3-a137-ad5439e0f7b3",
  19.       "User-Agent: PostmanRuntime/7.15.2",
  20.       "cache-control: no-cache"
  21.     ),
  22.   ));

  23.   $response = curl_exec($curl);
  24.   $err = curl_error($curl);

  25.   curl_close($curl);

  26.   if ($err) {
  27.     echo $error;
  28.     return;
  29.   }

  30.   $decodedResponse = json_decode($response, true);

  31.   if (array_key_exists("error", $decodedResponse)) {
  32.     echo $decodedResponse["error"];
  33.     return;
  34.   }

  35.   if (!array_key_exists("access_token", $decodedResponse) ||
  36.       !array_key_exists("refresh_token", $decodedResponse)) {
  37.     echo "No access_token or refresh_token";
  38.     return;
  39.   }

  40.   $accessToken = $decodedResponse["access_token"];
  41.   $refreshToken = $decodedResponse["refresh_token"];

  42.   echo $accessToken;
  43.   echo "<br>";
  44.   echo $refreshToken;

  45.   $configuration = array(
  46.     "client_id"=> $clientId,
  47.     "client_secret"=> $clientSecret,
  48.     "redirect_uri" => $redirectUri,
  49.     "currentUserEmail"=> "zoho.developer1@infarm.com",
  50.     "accounts_url" => "https://accounts.zoho.eu"
  51.   );

  52.   ZCRMRestClient::initialize($configuration);
  53.   $oAuthClient = ZohoOAuth::getClientInstance();
  54.   $userIdentifier = "zoho.developer1@infarm.com";
  55.   $oAuthTokens = $oAuthClient->generateAccessTokenFromRefreshToken($refreshToken, $userIdentifier);
  56.   var_dump($oAuthTokens);

  57.   $rest = ZCRMRestClient::getInstance();
  58.   $orgIns = $rest->getOrganizationDetails()->getData();