question

jason4335 avatar image
jason4335 asked paul-mclellan13972 commented

I am getting a "OAU-153" error relating to invalid parameters. What does it mean?

I am trying Password Flow...I'm adapting the code to Coldfusion but I am getting the Invalid Cilent error.

  1. My app is setup for Password Flow.

  2. I am using username in format of: +15559991212

  3. Password was reset and changed successfully to confirm that's correct.

  4. Client Id is copied right out of the Credentials in my Developer Account and encoded in Base64.

  5. Secret key is copied right out of Credentials in my Developer Account.

My Code:

 >cfhttp
       method="post"
       url="https://platform.devtest.ringcentral.com/restapi/oauth/token";
       resolveurl="yes"
       getasbinary="never">
   <cfhttpparam type="header" name="content-type" value="application/x-www-form-urlencoded">
   <cfhttpparam type="header" name="accept" value="application/json">
   <cfhttpparam type="header" name="authorization" value="#authorization#">
   <cfhttpparam type="url" name="username" value="#username#">
   <cfhttpparam type="url" name="password" value="#password#">
   <cfhttpparam type="url" name="extension" value="#extension#">
   <cfhttpparam type="url" name="grant_type" value="password">
 </cfhttp>
 <cfoutput>#cfhttp.FileContent#
 <cfabort>
errorsoauth
1 |3000

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

anton-nikitin avatar image
anton-nikitin answered
Authorization header should be like BASE64(client_id ":" client_secret). It doesn't seem from your code that you are building it properly (if I am not mistaken you encode only client_id with Base64 and then append secret to it as is.
1 |3000

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

jason4335 avatar image
jason4335 answered
So you are saying that the bas64 needs to be applied to both together...another rep for Ringcentral said that you base64 the client_id and then put a colon and then leave the client secret the same which didn't make sense to me frankly.
1 |3000

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

jason4335 avatar image
jason4335 answered
Also, another rep said a conflicting thing that you don't need to base64 on Password Flow....so there is a lot of confusion between support on how this API is constructed.
1 |3000

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

anton-nikitin avatar image
anton-nikitin answered
Jason, I don't know who told you that and apologize for misunderstanding. But actually this part is explained in multiple places in our documentation (for example here:  http://ringcentral-api-docs.readthedocs.io/en/latest/oauth/#client-authentication) as well as in other sources explaining OAuth 2.0 protocol. It is just a standard authorization header format for HTTP Basic authentication.
1 |3000

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

jason4335 avatar image
jason4335 answered anton-nikitin commented
Ok...I appreciate the direct link to what is right...

To confirm that I did my Authorization Header correctly, here is my code and I will explain it:

<cfset authorization = client_id & ":" & client_secret />
<cfset authorization = "Basic " & ToBase64(authorization) />

The first line in Coldfusion is saying this:

authorization = the base64 of client_id:client_secret

The second line says add the word "Basic" plus a space to the front of the authorization variable above, so if you outputted this variable, it would look like this:

Basic THISISTHEBASE64OFCLIENT_ID:CLIENT_SECRET

Assuming I did that right (which I assume I did since the error changed), I got this:

"errorCode" : "OAU-140", "message" : "Invalid resource owner credentials"

This implies invalid username or password.  My username is the Development phone number in my console and my password (which I believe I'm right) but I cannot verify it since it's not readable.

Jason


7 comments
1 |3000

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

anton-nikitin avatar image anton-nikitin commented ·
Jason, Authorization header is correct now. I assume that since you are connecting to Sandbox environment you will need your sandbox username (phone number) and password. You can reset password if you want in application dashboard on developer portal.
0 Likes 0 ·
jason4335 avatar image jason4335 commented ·
Ok.

Username is in this format: +15556661212 (the real number was obtained from my Sandbox credentials section in my developer section.

Password: I reset the password to another password and updated my code to make sure.

Same error.

0 Likes 0 ·
jason4335 avatar image jason4335 commented ·
FYI...also I double checked what my keys are after Base64 by manually checking it on websites suggested on this forum and it matched what Coldfusion is doing, so I know my header is right.
0 Likes 0 ·
anton-nikitin avatar image anton-nikitin commented ·
Can you provide the value of RCRequestId header which was returned in your error response? I will check backend logs.
0 Likes 0 ·
jason4335 avatar image jason4335 commented ·
This is what is returned in entirety..not sure if that's what you want:

{ "error" : "invalid_grant", "error_description" : "Invalid resource owner credentials", "errors" : [ { "errorCode" : "OAU-140", "message" : "Invalid resource owner credentials" } ] }


0 Likes 0 ·
Show more comments
jason4335 avatar image
jason4335 answered paul-mclellan13972 commented
I figured it out...tried to post the Coldfusion code for Password Flow, but it wouldn't post.
10 comments
1 |3000

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

suresh-ketha3190 avatar image suresh-ketha3190 commented ·
please put
reasn for error
0 Likes 0 ·
paul-mclellan13972 avatar image paul-mclellan13972 commented ·
Jason - please share what you figured out. I have the same code and same error and am going crazy here.
0 Likes 0 ·
jason4335 avatar image jason4335 commented ·
You are using Coldfusion, correct?
0 Likes 0 ·
paul-mclellan13972 avatar image paul-mclellan13972 commented ·
Yes, sir! 2016 w/MySQL.

I have near identical code and am getting this response:
{ "error" : "invalid_grant", "error_description" : "Invalid resource owner credentials", "errors" : [ { "errorCode" : "OAU-140", "message" : "Invalid resource owner credentials" } ] }


<cfset authorization = client_id & ":" & secret_key />
<cfset authorization = "Basic " & ToBase64(authorization) />

<cfhttp url=" https://platform.devtest.ringcentral.com/restapi/oauth/token"; method="POST" username="#client_id#" password="#secret_key#" result="result" timeout="60">
<cfhttpparam type="header" name="Content-Type" value="application/x-www-form-urlencoded">
<cfhttpparam type="header" name="Accept" value="application/json">
<cfhttpparam type="header" name="Authorization" value="#authorization#">
<cfhttpparam type="body" value="grant_type=password&username=#email#&extension=#extension#password=#password#">
</cfhttp>

0 Likes 0 ·
jason4335 avatar image jason4335 commented ·
This is mine:
0 Likes 0 ·
Show more comments

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys