基于C#Net中SugarCRM REST API中的帐户获取联系人
我想使用C#.net检索基于C#Net中SugarCRM REST API中的帐户获取联系人,c#,.net,rest,sugarcrm,C#,.net,Rest,Sugarcrm,我想使用C#.net检索sugarcrm rest api中基于帐户的所有联系人 我试过了 json = serializer.Serialize(new { session = sessionId, module_name = "accounts", query = "", order_by = "", offs
sugarcrm rest api中基于帐户的所有联系人
我试过了
json = serializer.Serialize(new
{
session = sessionId,
module_name = "accounts",
query = "",
order_by = "",
offset = "0",
select_fields = "",
link_name_to_fields_array = "",
max_results = "2000",
deleted = 0
});
values = new NameValueCollection();
values["method"] = "get_entry_list";
values["input_type"] = "json";
values["response_type"] = "json";
values["rest_data"] = json;
response = client.UploadValues(sugarUrl, values);
responseString = Encoding.Default.GetString(response);
var accountsList = serializer.Deserialize<Dictionary<string, dynamic>>(responseString);
json=serializer.Serialize(新)
{
会话=会话ID,
模块_name=“账户”,
查询=”,
按“”订购,
offset=“0”,
选择_fields=“”,
链接\u name\u到\u字段\u数组=“”,
max_results=“2000”,
已删除=0
});
values=新名称valuecollection();
值[“方法”]=“获取项目列表”;
值[“输入类型”]=“json”;
值[“响应类型”]=“json”;
值[“rest_数据”]=json;
response=client.UploadValues(sugarUrl,value);
responseString=Encoding.Default.GetString(响应);
var accountsList=serializer.Deserialize(responseString);
我能够获得所有帐户和联系人,但我无法获得它们之间的关系,即哪些联系人属于哪个帐户
提前谢谢你的帮助
更新:
object[] linkNameToFieldsArray = new object[1]
{
new object[2, 2]
{
{ "name", "contacts" },
{ "value", new string[2]
{ "id", "last_name"
}
}
};
json = serializer.Serialize(new
{
session = sessionId,
module_name = "accounts",
query = "",
order_by = "",
offset = "0",
select_fields = "",
link_name_to_fields_array = linkNameToFieldsArray , ***//just added this to get related records***
max_results = "2000",
deleted = 0
});
values = new NameValueCollection();
values["method"] = "get_entry_list";
values["input_type"] = "json";
values["response_type"] = "json";
values["rest_data"] = json;
response = client.UploadValues(sugarUrl, values);
responseString = Encoding.Default.GetString(response);
var accountsList = serializer.Deserialize<Dictionary<string, dynamic>>(responseString);
object[]linkNameToFieldsArray=新对象[1]
{
新对象[2,2]
{
{“姓名”,“联系人”},
{“value”,新字符串[2]
{“id”,“姓氏”
}
}
};
json=serializer.Serialize(新的
{
会话=会话ID,
模块_name=“账户”,
查询=”,
按“”订购,
offset=“0”,
选择_fields=“”,
将\u name\u链接到\u fields\u array=linkNameToFieldsArray,***//刚刚添加了这个以获取相关记录***
max_results=“2000”,
已删除=0
});
values=新名称valuecollection();
值[“方法”]=“获取项目列表”;
值[“输入类型”]=“json”;
值[“响应类型”]=“json”;
值[“rest_数据”]=json;
response=client.UploadValues(sugarUrl,value);
responseString=Encoding.Default.GetString(响应);
var accountsList=serializer.Deserialize(responseString);
假设SugarCRM 6.4或6.5系统和API版本REST v4\u 1
我不知道C#/.NET语法/行话,但“link#u name_to_fields_array”需要是一个数组,其中包含模块名键(例如“Contacts”)和您想要的字段数组值。JSON如下所示:
{
"session":"asdfasdfsrf9ebp7jrr71nrth5",
"module_name":"Accounts",
"query":"",
"order_by":null,
"offset":0,
"select_fields":[
"id",
"name"
],
"link_name_to_fields_array":[
{
"name":"contacts",
"value":[
"id",
"last_name"
]
}
],
"max_results":"2",
"deleted":false
}
另外-我写这篇文章是为了帮助非PHP开发者与这个版本的API交互,因为文档大部分是基于PHP的。你可能会发现它很有用:我尝试了上面的json格式,但没有得到任何结果…数组关系列表
包含数组链接列表
,但它有0个值。我已经更新了代码。请看一看。…使用PHP代码,它可以正常工作,但是使用c#关系列表是不可能的。你可以使用Wireshark这样的工具来观察你的代码到底发送了什么?这对我来说很好,但我最近发现ColdFusion中的JSON工具混淆了其余的数据参数顺序,API不接受它。如果你看看我正在发送的json{“session”:“6k6g6l31eg5fjbmhb9pes5ldi0”,“module_name”:“Accounts”,“query”:“order_by”:“offset”:“offset”:“0”,“select_fields”:[“id”,“last_name”],“link_name_to_fields_array”:[{“name”:“contacts”,“values”:[“id”,“last_name”]}],“max_results”:“2000”,“deleted”:0
选择字段”:[“id”、“姓氏”]
…帐户没有姓氏
字段,请与名称
交换,然后重试。