Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
4 views
in BI by (11.1k points)

I was trying to import data into Power BI by connecting Zoho CRM API and I am getting an error after getting into Zoho through my custom connector

Error message: [DataFormatError] We couldn't parse your query string as it was improperly formatted

// This file contains your Data Connector logic section Zoho_Connector___V1.1; // TODO: add your client id and secret to the embedded files client_id = "XXXXX"; client_secret = "XXXXXX"; redirect_uri = "https://oauth.powerbi.com/views/oauthredirect.html"; windowWidth = 800; windowHeight = 800; //Oauth base url for OAuthBaseUrl = "https://accounts.zoho.eu/oauth/v2/auth?"; [DataSource.Kind="Zoho_Connector___V1.1", Publish="Zoho_Connector___V1.1.Publish"] shared Zoho_Connector___V1.1.Contents = () => let navTable = Web.Contents("https://www.zohoapis.eu/crm/v2/Leads") in navTable; // Data Source Kind description Zoho_Connector___V1.1 = [ Authentication = [ // enable both OAuth and Key based auth OAuth = [ StartLogin = StartLogin, FinishLogin = FinishLogin, Refresh=Refresh ] ], Label = Extension.LoadString("DataSourceLabel") ]; // Data Source UI publishing description Zoho_Connector___V1.1.Publish = [ Beta = true, Category = "Other", ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") }, LearnMoreUrl = "https://powerbi.microsoft.com/", SourceImage = Zoho_Connector___V1.1.Icons, SourceTypeImage = Zoho_Connector___V1.1.Icons ]; // OAuth2 flow definition // // Start Login thorugh OAUTH StartLogin = (resourceUrl, state, display) => let AuthorizeUrl = OAuthBaseUrl & Uri.BuildQueryString([ scope = "ZohoCRM.modules.all", client_id = client_id, redirect_uri = redirect_uri, response_type = "code", state = state, access_type = "online"]) in [ LoginUri = AuthorizeUrl, CallbackUri = redirect_uri, WindowHeight = windowHeight, WindowWidth = windowWidth, Context = null ]; // Finish Login through OAUTH FinishLogin = (context, callbackUri, state) => let Parts = Uri.Parts(callbackUri)[Query] in TokenMethod(Parts[code], "authorization_code"); TokenMethod = (code, grant_type) => let Response = Web.Contents(OAuthBaseUrl & "/token", [ Content = Text.ToBinary(Uri.BuildQueryString([ grant_type = "authorization_code", client_id = client_id, client_secret = client_secret, redirect_uri = redirect_uri, code = code ] )), Headers=[#"Content-type" = "application/x-www-form-urlencoded",#"Accept" = "application/json"]]), Parts = Json.Document(Response) in Parts; Refresh = (resourceUrl, refresh_token) => TokenMethod(refresh_token, "refresh_token"); Zoho_Connector___V1.1.Icons = [ Icon16 = { Extension.Contents("Zoho_Connector___V1.116.png"), Extension.Contents("Zoho_Connector___V1.120.png"), Extension.Contents("Zoho_Connector___V1.124.png"), Extension.Contents("Zoho_Connector___V1.132.png") }, Icon32 = { Extension.Contents("Zoho_Connector___V1.132.png"), Extension.Contents("Zoho_Connector___V1.140.png"), Extension.Contents("Zoho_Connector___V1.148.png"), Extension.Contents("Zoho_Connector___V1.164.png") } ];

 

1 Answer

0 votes
by (22.5k points)

Check with the following code:

OAuthBaseUrl = "https://accounts.zoho.eu/oauth/v2/auth?";

Url code is:

OAuthBaseUrl & "/token" 

Focus on Question Marks

https://accounts.zoho.eu/oauth/v2/auth?/token 

It should be like

https://accounts.zoho.eu/oauth/v2/token 

If you want to learn more about Power BI, then read the Power BI Tutorial. Also, enroll in Power BI Training to become proficient in this BI tool.      

Related questions

0 votes
1 answer
asked Jan 11, 2021 in BI by Chris (11.1k points)
0 votes
1 answer
0 votes
1 answer

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...