Forum Discussion
ZaraSeif123
6 years agoFrequent Visitor
Einstein Analytics REST API query
Hi
I'm using this code to connect to Einstein Analytics in Salesforce and fetch data using Rest APIs
let
token_url = "https://login.salesforce.com/services/oauth2/token",
api_base_url = "https://***.my.salesforce.com/services/data/v48.0/wave/query",
qry_str = "",
token_url = "https://login.salesforce.com/services/oauth2/token",
api_base_url = "https://***.my.salesforce.com/services/data/v48.0/wave/query",
qry_str = "",
body="grant_type=password&client_id=***&client_secret=***&username=***&password=***",
Source = Json.Document(Web.Contents(token_url,
[
Headers = [#"Content-Type"="application/x-www-form-urlencoded"],
Content=Text.ToBinary(body)
]
)
),
token = Source[access_token],
Source = Json.Document(Web.Contents(token_url,
[
Headers = [#"Content-Type"="application/x-www-form-urlencoded"],
Content=Text.ToBinary(body)
]
)
),
token = Source[access_token],
content = "{
""query"":""q = load \""DataSetName\"";
q = limit q 200;""
}",
""query"":""q = load \""DataSetName\"";
q = limit q 200;""
}",
data= Json.Document(Web.Contents(api_base_url&qry_str,
[
Headers = [
#"Authorization"="Bearer "&token,#"Content-Type"="application/json"],Content=Text.ToBinary(content)
]
)
)
in
data
[
Headers = [
#"Authorization"="Bearer "&token,#"Content-Type"="application/json"],Content=Text.ToBinary(content)
]
)
)
in
data
the Authentication works fine and I can get the access token and connect but when I post the second request I get this error: "We couldn't authenticate with the credentials provided"
Am I sending the post request correctly by using Content=Text.ToBinary(content)? or maybe my SAQL query is wrong? as I'm not familiar with SAQL.
the below code works:
api_base_url = "https://***.my.salesforce.com/services/data/v42.0/wave",
data= Json.Document(Web.Contents(api_base_url&qry_str,
[
Headers = [
#"Authorization"="Bearer "&token,#"Content-Type"="application/json"]
]
)
)
but when I change the URL to "https://***.my.salesforce.com/services/data/v48.0/wave/query" and post the query it breaks.
Any help with this will be greatly appreciated.
Am I sending the post request correctly by using Content=Text.ToBinary(content)? or maybe my SAQL query is wrong? as I'm not familiar with SAQL.
the below code works:
api_base_url = "https://***.my.salesforce.com/services/data/v42.0/wave",
data= Json.Document(Web.Contents(api_base_url&qry_str,
[
Headers = [
#"Authorization"="Bearer "&token,#"Content-Type"="application/json"]
]
)
)
but when I change the URL to "https://***.my.salesforce.com/services/data/v48.0/wave/query" and post the query it breaks.
Any help with this will be greatly appreciated.
Thanks
Zara
Zara
Hi Guys
In case anybody else faces this issue, I solved it by adding \n to my query:
content = "{
""query"":""q = load \""DataSetName\""; \n q = limit q 200;""
}",
1 Reply
- ZaraSeif123Frequent Visitor
Hi Guys
In case anybody else faces this issue, I solved it by adding \n to my query:
content = "{
""query"":""q = load \""DataSetName\""; \n q = limit q 200;""
}",