This is a very novice question, but I am having trouble with a post request snap. This is just to authenticate with the RingCentral platform to receive a token for API consumption. I am able to successfully retrieve an access token when calling the oauth/token endpoint in Postman. The issue arises when I try to move this post call into SnapLogic. The call requires certain parameters to be passed through the body and I am not sure how to duplicate this in SnapLogic post snap. Please see the screenshot of the Postman call Body tab below.
I have created a basic account in SnapLogic to store the username and password and my post snap references that account. I am also aware that the credentials of a basic account can be accessed using the “Account.Username” and Account.Password" of the respective referenced account within the snap.
I am just not sure how to build out the body section in the “x-www-form-urlencoded” format as shown in the screenshot? The error I get back when validating this post snap is just a 400: Bad Request.
Any insight/help that anyone could provide would be greatly appreciated. Please let me know if additional information is needed to provide assistance.
Thanks for your reply. please note that these containers should be all lowercase, “account.username” not “Account.Username”. This was a feature that I came across in the community. This is not the exact article that first came across this feature, but it references the same containers. Perhaps it is not available for all account types, or maybe it is in the process of being deprecated?
Ah! I just looked at that other Community post you linked. I wasn’t aware of that hack. But I’m pretty sure it only works in an expression used in the Value column of the HTTP Headers table, not anywhere else. I don’t think you’ll be able to use it for the request body.
Oh I apologize for the confusion, I already had that specific header in place We are successfully using the account.username and account.password in another pipeline i.e. in the HTTP entity field of the POST snap.
Are you saying that you got it working by removing the account from the snap and replacing account.username and account.password with pipeline parameters in your HTTP Entity expression?
If that’s the case, it means the server is rejecting the request because of the Authorization header added by the account. So that does leave you in a tough spot, since the only way to keep the password secure is by using an account.
Yes that is what happened. There is a missing piece that you don’t know about yet. Basically there is already an Authorization header that is required by RingCentral. Basically you have to take an app id and client secret concatenate the two the base64 encode the concatenated string and pass that as your Authorization header. Didn’t mean to leave that out earlier. Just didn’t realize it would be relevant until now.