Zoho CRM API to Power BI Connector
Posted
技术标签:
【中文标题】Zoho CRM API to Power BI Connector【英文标题】: 【发布时间】:2020-09-20 15:09:06 【问题描述】:我正在尝试连接到 Zoho CRM API 以将数据导入 PowerBI,通过我的自定义连接器登录到 Zoho 后收到错误消息,希望您能提供帮助,因为我的连接器似乎已完成 90%,只是缺少最后一个步! (代码如下)。
错误消息:[DataFormatError] 我们无法解析您的查询字符串,因为它的格式不正确
// 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")
];
谢谢!
【问题讨论】:
亲爱的 Alex,你能取得一些进展吗? 【参考方案1】:您的代码中有错误(可能还有更多) 请看一下这个变量
OAuthBaseUrl = "https://accounts.zoho.eu/oauth/v2/auth?";
您的兑换码网址是
OAuthBaseUrl & "/token"
请关注 OauthBaseUrl 末尾的问号 它会解决这个问题
https://accounts.zoho.eu/oauth/v2/auth?/token
但应该
https://accounts.zoho.eu/oauth/v2/token
我的另一个建议是在您的代码中添加错误处理和日志。它将帮助您准确理解问题。您还可以获取响应标头和状态来确定潜在问题
【讨论】:
以上是关于Zoho CRM API to Power BI Connector的主要内容,如果未能解决你的问题,请参考以下文章