Skip to main content
Question

Invalid client error while calling refresh token api

  • September 20, 2016
  • 7 replies
  • 4166 views

Hi All,


I am calling refresh token api to refresh token. But when I call, It throws error "Invalid client: ".

I am calling using node js.Below is calling function.


request.post( { url : ringCentralUrl,

form: {

refresh_token : myRefreshToken,

grant_type : "refresh_token",

endpoint_id: endpointId

},

headers:{


"Authorization" : "Basic MyaccessToken",

'Accept':'application/json',

'Content-Type':'application/x-www-form-urlencoded'

}

},function(err,responce, responceData) {




});


Can anyone please help me out.



----

Thanks,

Mahesh More

7 replies

It probably means your appKey or appSecret is wrong.

In your code there is "MyaccessToken", how did you generate it?

  • Author
  • New Participant
  • September 20, 2016
Hello Tyler,

MyaccessToken I have generated using RingCentral OAuth 2.0 Authentication.

Do you mean I am using wrong appKey or appSecret while generating access token ?

Thanks,
---
Regards,
Mahesh More




  • Inspiring
  • September 20, 2016
Could you please provide the following:

1. Are you using the RingCentral JS SDK? If yes, which version?
2. Description of the 'endpointId' variable's assigned value
3. The complete error response with headers/body from this request

This will help in figuring out what is happening here.

  • Author
  • New Participant
  • October 3, 2016
I am not using SDK.
I have entered endpointId value which I got it with access token.

Below is the error I am facing.

 {
  "error" : "invalid_client",
  "error_description" : "Authentication header value is malformed"
}



Please do let me know if you need more information.



You will need to view the documentation, because Tyler is correct, you are using the incorrect Authorization Header key:value. https://developers.ringcentral.com/api-docs/latest/index.html#!#RefRefreshTokenFlow

What this means is in your example you set the "Authorization: Basic {{myAccessToken}}", but this is incorrect because you SHOULD NOT be using your "access_token" as this value, you should instead be using the result of Base64 encoding your {{appKey}}:{{appSecret}} (which is the same value you used to obtain the 'access_token' initially).

Also, please pay special attention to the description for endpointId...
If not specified, the previously specified or auto-generated value is used by default

  • New Participant
  • February 25, 2018
Mahesh More,have you get the solution.Have you get the solution to refresh the access token?
If yes please share code.Thanks

Yes you don't need to put access_token in Authorization header. All you need to put is Base64 format of clientId and client secret as follow:

Authorization Basic <clientId:clientSecret in Base64>

Access_token are need to pass to the actual main APIs as type Bearer to get the response