cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
EiA
Frequent Visitor

Accessing Planday API with M

Hi,

 

I am trying to access the APIs of Planday (explained in detail here) from Power Query, but I have some issues authenticating to get the access token.

 

The relevant info about the API:

Before you can make calls to the API resources, you first need to obtain an Access Token by exchanging the Refresh Token from the previous sections for an Access Token. To do this, you need to make a POST request using any tool you want that can make HTTP calls (curl, postman, etc.) The request is as follows (replace CLIENT_ID and TOKEN with appropriate values):

POST https://id.planday.com/connect/token Request Headers: Content-Type: application/x-www-form-urlencoded Request Body: client_id=CLIENT_ID&grant_type=refresh_token&refresh_token=TOKEN

 

My query attempt that receives a 400 - Bad attempt error:

let
url = "https://id.planday.com/connect/token",
body = "client_id=<MyClientId>,grant_type=refresh_token,refresh_token=<MyRefreshToken>",
Source =
Json.Document(Web.Contents(url, [Headers=[#"Content-Type"="application/x-www-form-urlencoded"],Content=Text.ToBinary(body)]))
in
Source

 

My knowledge of M is quite limited, so my attempt may be way off, but I have tried copying another query that works in a similar case with other APIs. 

 

If any of you are able to spot an error or rewrite the entire query for it to work - it would be highly appreciated!

 

Thanks!

1 ACCEPTED SOLUTION

Use Fiddler or similar to inspect the packet you are sending for any other potential format issues. APIs often expect the payload base64 encoded etc.

View solution in original post

4 REPLIES 4
EiA
Frequent Visitor

Thanks again @lbendlin . I used another tool to find out the issue was with the API-access itself. Once fixed, my code worked with your suggestion of using "&".

lbendlin
Super User
Super User

Body: client_id=CLIENT_ID&grant_type=refresh_token&refresh_token=TOKEN

 

you are using comma  (,)  instead of ampersand (&)  in your implementation.

EiA
Frequent Visitor

Thanks for getting back to me on this @lbendlin , but unfortunately it still gives the same 400-error. Any other suggestions?

Use Fiddler or similar to inspect the packet you are sending for any other potential format issues. APIs often expect the payload base64 encoded etc.

Helpful resources

Announcements
August 2022 update 768x460.jpg

Check it Out!

Click here to learn more about the August 2022 updates!

August 1 episode 9_no_dates 768x460.jpg

The Power BI Community Show

Watch the playback when Priya Sathy and Charles Webb discuss Datamarts! Kelly also shares Power BI Community updates.

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Top Solution Authors