cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
MartinHutchcpa
Helper III
Helper III

Xero Oauth2.0

Xero released their Oauth2.0 authenticated access to their API recently.

I am trying to write some flows to use this.

If I use Postman to generate the access code and then use it in flow, all works fine.

 

However the code needs to be refreshed every 30 minutes.

Running the token refresh call in Postman works fine, however it fails in Flow. "error": "unsupported_grant_type"

 

Post to https://identity.xero.com/connect/token

Header

"Authorization": "Basic Rjd..." - valid (checked) token 

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

 

The body of the http call is :-

{
"grant_type":"refresh_token",
"refresh_token":"0134e4a53c...",
"client_id":"F7B7...",
"client_secret":"GEfl..."
}

 

Can anyone shed any light on this please?

38 REPLIES 38
v-alzhan-msft
Community Support
Community Support

Hi @MartinHutchcpa ,

 

Could you please share a screenshot of the configuration of your flow?

 

Best regards,

Alice       

Community Support Team _ Alice Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi Alice,

Here you go.

 

Capture.JPG

 

 

https://developer.xero.com/documentation/oauth2/auth-flow

This links to the refresh token syntax.

LukePWilkins
Helper III
Helper III

Did you ever get this working? I assume, if you are trying the refresh token, you had made the initial authentication work? Could you share that HTTP flow please?

Hi Luke,

I used Postman to get an initial token. The token is saved in a SharePoint list.

I have a flow that refreshes this token and saves it back to the list, this runs every 15 mins.

My flows then use this token from the SharePoint list to do their thing.

Hope this helps.

LukePWilkins
Helper III
Helper III

First off, thank you for replying to a post from 2020.

If my thinking is correct, the initial auth is performed via postman, and the PA flow retrieves the token saved in a sharepoint list?

 

I will explain my scenario. Google form time entry, which essentially was saved to a google sheet. I could extract the new rows and post to a sharepoint list, for time entry for a client. They have since moved to WorkFlowMax; i'm trying to create a similar process.

 

I would need to auth once per day to WFM via API and then POST add time. I imagine being in the position of auth once, and then refresh once per 24 hours, in order to post new data. 

 

You worked out how to refresh such token via PowerA, referencing the original question? 

 

Please can we keep the conversation going, I don't want to give up on my objective! 

cheers
Luke

Hi Luke,

For Xero, the refresh PA is very simple, not sure about Google api endpoint though.

LukePWilkins
Helper III
Helper III

The Google Sheet aspect is easy, as there is a connector.

I have used PostMan for the first time, and have my access token now. 

So I assume I can now bring that into PowerAutomate and work on the refresh cycle. 

Once that is done, I can look at adding new time entry into work flow max.

 

Any pointers with the refresh flow for the token please?

Hi Luke,

I store my token in a Dynamics 365 table, although I have used Sharepoint in the past.

MartinHutchcpa_0-1620969428165.png

 

LukePWilkins
Helper III
Helper III

Awesome! Over on GIT is a Postman environment to import. Has all the workings of getting started with the Worflow max api - (GitHub - XeroAPI/workflowmax-postman-oauth2: A postman collection for use with WorkflowMax's API and...

 

So I can get to speed with interacting with the API via Postman and then bring my learnings into Power Automate.

cheers for the screenshot 

LukePWilkins
Helper III
Helper III

@MartinHutchcpa , what is the redirect URL back to Power Automate that you use?

MartinHutchcpa
Helper III
Helper III

I didnt need one as I was working in private mode

LukePWilkins
Helper III
Helper III

Please could you post the breakdown of the HTTP flow, where you are refreshing the token.

I can't work out what should be in the Body and the Headers, however much I try I get Invalid_Client or Invalid_Request, where trying to refresh

 

Also, how is this string made up: Do I use the text as is, but replace the id and secret?

"Basic " + base64encode(client_id + ":" + client_secret)
LukePWilkins
Helper III
Helper III

Its this Authorization string which is throwing me now! I'm getting back Invalid_Client in PA. Could you give me some pointers please on how you have encoded it? I see at the first screen shot, its an expression with Basic and then I assume your base64encode string for client id and pass - how did you encode it?

LukePWilkins
Helper III
Helper III

OK I sorted it!!! Wow... talk about learning.

 

In the HTTP call I formed the body as form-data (reference from the way POSTMAN was forming the refresh request) 

 

grant_type=refresh_token&refresh_Token=REFRESHTOKEN&client_id=CLIENTID&client_secret=CLIENTSECRET

 

No need for Authorization header and the base64encode stringScreenshot 2021-05-17 181252.png

Screenshot 2021-05-17 181509.png

Thanks @WillPage (Adding formData to HTTP Request - Power Platform Community (microsoft.com))

 

Thanks @MartinHutchcpa 

Nebulas
Helper II
Helper II

Hi @LukePWilkins (et all)

 

Credit for your persistence here.  I am trying to do exactly the same thing and can't seem to get past "{"error":"invalid_client"}".

 

I have successfully authenticated, refreshed tokens, retrieved invoices, and created invoices using Postman.

 

I have created a single flow with the three variables below and validated that the values are all correct and matching what is in Postman.

 

I have also tried formatting the body in JSON (noting to change content-type) however this returns 'invalid request'.

 

When I format the body exactly how you have set out, or copy/pasting from Postman both result in 'invalid client'.

 

My process to test this scenario is as follows:

  1. Generate new token in Postman
  2. Copy access_token and refresh token to environment variables in Postman
  3. Run authentication in Postman (sign in etc)
  4. Run Refresh token in Postman
  5. Run Get connections to obtain and store client_id in environment variables in Postman
  6. Test retrieve and create Invoices in Postman
  7. Ensure token is not expired
  8. Run my refresh token flow in PowerAutomate

 

Hoping you can shed some light on this for me. Here are some of my questions:

  1. There was one auto-generated KEY-VALUE in Postman called "Host" and it mentions that if this is removed it will likely result in a 400 error. It doesn't look like you have included this. Did this cause you any problems?
  2. Did you have to first create a flow for steps 1-3 in my process above in order to run the Refresh Token flow?

 

Here is the the output of my flow:

Screen Shot 2021-06-02 at 4.41.19 pm.png

 

Any help would be greatly appreciated.

LukePWilkins
Helper III
Helper III

I have the access token and refresh token saved in a txt file on OneDrive. ClientID and Secret are hardcoded in the variables. RefreshToken, retrieves the refresh token from OneDrive, then its a POST to the API

Screenshot 2021-06-05 093219.png

Nebulas
Helper II
Helper II

@LukePWilkins 

 

Thanks for the response!

 

I ended up moving client_id, client_secret, xero-tenant-id, access_token, and refresh_token values to a Davaverse table.

 

I am 99.99999% sure these were all the exact same values that I had initialised as variables in my original flow.

 

Then the only change I made is that I noticed you had an uppercase T in the body for 'refresh_Token'.

 

The flow now works perfectly.  I also added a Do Until status code = 200 so it will retry if it fails for any reason. The flow then updates the dataverse table with the new tokenset (access and refresh) details.

 

My flow now looks like this:

Screen Shot 2021-06-05 at 5.23.03 pm.png

 

Thanks again for your response!

LukePWilkins
Helper III
Helper III

Do you have a typo in Grant_type refresh_tocken???? 

I have my flow scheduled to run every 29 mins and refresh the access token. 

Glad you got it sorted! Two people extra now working with the API via Power Automate

LukePWilkins
Helper III
Helper III

@Nebulas , i'm going to look into storing data in the dataverse, which feels as much better option than onedrive TXT file!!!

Helpful resources

Announcements

Super User of the Month | Drew Poggemann

As part of a new monthly feature in the Community, we are excited to share that Drew Poggemann is our featured Super User for the month of February 2024. If you've been in the Community for a while, we're sure Drew's name is familiar to you, as he is one of our most active contributors--he's been a Super User for five consecutive seasons!   Since authoring his first reply 5 years ago to his 514th solution authored, Drew has helped countless Community members with his insights and expertise. In addition to being a Super User, Drew is also a User Group leader and a Microsoft MVP. His contributions to our Super User sessions and to the new SUIT program are always welcome--as well as his sense of humor and fun-loving way of sharing what he knows with others.   When Drew is not solving problems and authoring solutions, he's busy overseeing the Solution Architecture team at HBS, specializing in application architecture and business solution strategy--something he's been doing for over 30 years. We are grateful for Drew and the amazing way he has used his talent and skills to help so many others in the Community. If you are part of the SUIT program, you got to hear some great tips from Drew at the first SUIT session--and we know he still has much more to share!You can find him in the Community and on LinkedIn. Thank you for all you do, Drew!

Announcing Power Apps Copilot Cookbook Gallery

We are excited to share that the all-new Copilot Cookbook Gallery for Power Apps is now available in the Power Apps Community, full of tips and tricks on how to best use Microsoft Copilot as you develop and create in Power Apps. The new Copilot Cookbook is your go-to resource when you need inspiration--or when you're stuck--and aren't sure how to best partner with Copilot while creating apps.   Whether you're looking for the best prompts or just want to know about responsible AI use, visit Copilot Cookbook for regular updates you can rely on--while also serving up some of your greatest tips and tricks for the Community. Our team will be reviewing posts using the new "Copilot Studio" label to ensure we highlight and amplify the most relevant and recent content, so you're assured of high-quality content every time you visit. If you share a post that gets featured in the curated gallery, you'll get a PM in the Community to let you know!The curated gallery is ready for you to experience now, so visit the new Copilot Cookbook for Power Apps today: Copilot Cookbook - Power Platform Community. We can't wait to see what you "cook" up!    

Celebrating a New Season of Super Users with Charles Lamanna, CVP Microsoft Business Applications

February 8 was the kickoff to the 2024 Season One Super User program for Power Platform Communities, and we are thrilled to welcome back so many returning Super Users--as well as so many brand new Super Users who started their journey last fall. Our Community Super Users are the true heroes, answering questions, providing solutions, filtering spam, and so much more. The impact they make on the Communities each day is significant, and we wanted to do something special to welcome them at our first kickoff meeting of the year.   Charles Lamanna, Microsoft CVP of Business Applications, has stressed frequently how valuable our Community is to the growth and potential of Power Platform, and we are honored to share this message from him to our 2024 Season One Super Users--as well as anyone who might be interested in joining this elite group of Community members.     If you want to know more about Super Users, check out these posts for more information today:    Power Apps: What is A Super User? - Power Platform CommunityPower Automate: What is A Super User? - Power Platform Community Copilot Studio: What is A Super User? - Power Platform Community Power Pages: What is A Super User? - Power Platform Community

Super Users 2024 Season One is Here!

   We are excited to announce the first season of our 2024 Super Users is here! Our kickoff to the new year welcomes many returning Super Users and several new faces, and it's always exciting to see the impact these incredible individuals will have on the Community in 2024! We are so grateful for the daily difference they make in the Community already and know they will keep staying engaged and excited for all that will happen this year.   How to Spot a Super User in the Community:Have you ever written a post or asked for help in the Community and had it answered by a user with the Super User icon next to their name? It means you have found the actual, real-life superheroes of the Power Platform Community! Super Users are our heroes because of the way they consistently make a difference in the Community. Our amazing Super Users help keep the Community a safe place by flagging spam and letting the Community Managers know about issues. They also make the Community a great place to find answers, because they are often the first to offer solutions and get clarity on questions. Finally, Super Users share valuable insights on ways to keep the Community growing, engaging, and looking ahead!We are honored to reveal the new badges for this season of Super Users! Congratulations to all the new and returning Super Users!     To better answer the question "What is a Super User?" please check out this article: Power Apps: What is A Super User? - Power Platform CommunityPower Automate: What is A Super User? - Power Platform Community Copilot Studio: What is A Super User? - Power Platform Community Power Pages: What is A Super User? - Power Platform Community

Did You Attend the Microsoft Power Platform Conference in 2022 or 2023? Claim Your Badge Today!

If you were one of the thousands of people who joined us at the first #MPPC Microsoft Power Platform Conference in 2022 in Orlando--or attended the second-annual conference in Las Vegas in 2023--we are excited to honor you with a special community badge! Show your support for #MPPC Microsoft Power Platform Conference this year by claiming your badge!           Just follow this link to claim your badge for attending #MPPC in 2022 and/or 2023: MPPCBadgeRequest    Want to earn your badge for 2024? Just keep watching our News & Announcements for the latest updates on #MPPC24.

Microsoft Power Platform | 2024 Release Wave 1 Plan

Check out the latest Microsoft Power Platform release plans for 2024!   We have a whole host of exciting new features to help you be more productive, enhance delegation, run automated testing, build responsive pages, and so much more.    Click the links below to see not only our forthcoming releases, but to also try out some of the new features that have recently been released to market across:     Power Apps  Power Automate  Copilot Studio   We can’t wait to share with you all the upcoming releases that will help take your Power Platform experience to the next level!    Check out the entire Release Wave: Power Platform Complete Release Planner 

Users online (2,874)