question

sara avatar image
sara asked ·

API call to Authorize from Postman

Hi all, I am trying to test the API call to Authorize RingCentral from Postman and I am receiving 'Could not complete oauth login' error. Attached the screen shot of my request. 




Access Token URL:  https://platform.devtest.ringcentral.com/restapi/oauth/token

Thanks!
topic-default
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

sara avatar image
sara answered ·
Another scenario

I am trying the following method of call using Apex 

  1. Made an Authorize call to RC https://platform.devtest.ringcentral.com/restapi/oauth/authorize, Authorize call was successful and returned the 'code: XXXXXXXX' with response 
  2. Used the Code: XXXXXXX with params to make a token call https://platform.devtest.ringcentral.com/restapi/oauth/token but getting 400 error. 
Complete URL:

' https://platform.devtest.ringcentral.com/restapi/oauth/authorize?response_type=code&client_id=<CLIENT ID>&client_secret=<SECRET> &redirect_uri=<REDIRECT URI>&state=step2'

' https://platform.devtest.ringcentral.com/restapi/oauth/token?code=<AUTHIRIZE CODE FROM THE RESPONSE>&grant_type=password&client_id=<CLIENT ID>&client_secret=<SECRET> &redirect_uri=<REDIRECT URI>'


Any thoughts?
2 comments Share
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Check the response body of the 400 error.

grant_type should be "authorization_code" instead of "password". 

Ref:  https://github.com/ringcentral/ringcentral-ruby/blob/master/lib/ringcentral.rb#L50-L54
0 Likes 0 · ·
I am receiving 'Account does not exist' error.
0 Likes 0 · ·
Tyler Liu avatar image
Tyler Liu answered ·
If you want to jump to Apex sooner or later. Why not simply try some programming language instead of Postman?

As far as I can tell, Apex is similar to Java.  Here is how we do the authorization in Java:  https://github.com/ringcentral/ringcentral-java/blob/master/src/main/java/com/ringcentral/RestClient...
3 comments Share
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Postman is successful. The 400 error I am receiving is through APEX call. Below is the response from Authorize Request.

22:28:07:007 USER_DEBUG [26]|DEBUG|Authorize Response: {code=XXXXXXXXX, state=step2}

I am trying to pass the code with the following token Request and receiving 'Accont does not exist' as response body.

' https://platform.devtest.ringcentral.com/restapi/oauth/token?code=<CODE>&grant_type=password&client_id=<CLIENT ID>&client_secret=<SECRET> &redirect_uri=<REDIRECT URI>'

0 Likes 0 · ·
client_id and client_secret should be used in HTTP Header for basic authorization.  They are not supposed to be in query string.

And you are doing authorization code flow. So query parameter  "grant_type=password" should be changed to "grant_type= authorization_code"
0 Likes 0 · ·
Postman is successful while Apex code is not. Because what the Apex code does it not what Postman does.
0 Likes 0 · ·
Tyler Liu avatar image
Tyler Liu answered ·
I highly recommend you to read  https://github.com/ringcentral/ringcentral-ruby/blob/master/lib/ringcentral.rb  

170 line of code and covers all the things you need to know. Way more direct than trying everything with Postman.

For example: for authorization part:  https://github.com/ringcentral/ringcentral-ruby/blob/master/lib/ringcentral.rb#L154-L165 
Before you get the token, use back authorization, otherwise use bearer authorization.

And in order to exchange code for token:  https://github.com/ringcentral/ringcentral-ruby/blob/master/lib/ringcentral.rb#L49-L54
You can see that  grant_type: 'authorization_code' and  client_id & client_secret are not included in post body.(they are used in Basic authorization header instead)
Share
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Tyler Liu avatar image
Tyler Liu answered ·
And you don't have to use Apex because we don't have official SDK for Apex.

You can use Javascript instead because there are ways for Apex to communicate with JavaScript.  Check this video from me:  https://www.youtube.com/watch?v=bf_Z391G2cw&t=1182s

RingCentral has official SDK for JS  https://github.com/ringcentral/ringcentral-js

Here is a community version maintained by me:  https://github.com/tylerlong/ringcentral-js-concise
1 comment Share
1 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Will check it out. Thanks for the info.
0 Likes 0 · ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.