'Podio & Power BI

Has anybody got Podio to work with Power BI. I managed to get the token process to work in Power BI. I can get single record results to work but when using a list pull, I can't get it to work.

Podio Token Portion: Working

let
  token_url = "https://podio.com/oauth/token",
  client_id = "####",
  client_secret = "000####",
  grant_type = "password",
  username = "[email protected]",
  password = "###",
  body = "client_id="&client_id&"&client_secret="&client_secret&"&grant_type="&grant_type&"&username="&username&"&password="&password,
  Source = Json.Document(Web.Contents(token_url, [
  [
    Headers = [#"Content-Type"="application/x-www-form-urlencoded"],
    Content = Text.ToBinary(body)
  ])
  ),
  token = "bearer " & Source[access_token]
in
  token

Podio Grab List (Need Help Here):

let
  url = "https://api.podio.com/item/app/0000000/filter/",
  token = #"Podio Token",
  headers = [Headers = [#"Authorization" = token,
                        #"Content-Type"="application/json"]],
  Source = Json.Document(Web.Contents(url,headers))
in
  Source

All I keep getting is 400 Bad Request.



Solution 1:[1]

It appears you are trying to return data by filtering an app. When using /filter to filter items within an app, this is not a GET command but rather a POST command.

Since this is a POST command, you'll need to use the Content parameter within the Web.Contents function. The example below will limit the response to the first 10 records:

let
    url = "https://api.podio.com/item/app/0000000/filter/",
    token = #"Podio Token",
    headers = [Headers = [#"Authorization" = token,
                    #"Content-Type"="application/json"]],
    postData = Json.FromValue([limit = 10, offset = 0]),
    response = Web.Contents(url,
                            [Headers = headers,
                             Content = postData]),
    jsonResponse = Json.Document(response)
in
    jsonResponse

Solution 2:[2]

If you use GlobiFlow, you can create a JSON feed that you can import directly from PowerBI. Instead of selecting a JSON file, paste the JSON URL GlobiFlow gives you.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Adam DS
Solution 2 Shawn Terry