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的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angular 制作 Zoho CRM 扩展

使用http电话登录Zoho CRM

如何使用 php 代码将 ZOHO CRM 与 Zapier 连接?

Twilio 传入的短信在 Zoho CRM 中不起作用

以CSV格式备份ZOHO CRM中的所有表

D365 CRM & Power Platform 前端开发概览