Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于C#Net中SugarCRM REST API中的帐户获取联系人_C#_.net_Rest_Sugarcrm - Fatal编程技术网

基于C#Net中SugarCRM REST API中的帐户获取联系人

基于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

我想使用C#.net检索
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”、“姓氏”]
…帐户没有
姓氏
字段,请与
名称
交换,然后重试。