2017-01-16 3 views
0

가입자를 관심 분야에 추가하고 부울 값을 true로 설정하려면 false로 유지하십시오. 비슷한 요청을 사용하여 병합 필드 값을 업데이트하는 데 문제가 없습니다. 디버깅 할 때 나는 둘 사이의 한 가지 차이점을 발견하고 병합 필드가되지 않지만 이해는 요청에 "키"와 "값"을 가지고있다 :가입자를 MailChimp API 3.0 그룹에 추가 할 수 없습니다. C#

enter image description here

응답에 관한 관심의 모습 이것은 "키"와 "가치"를 가지고 있지 않습니다.

enter image description here

내가 잘못 뭐하는 거지?

내 updateMember 기능의 관련 부분은 다음과 같습니다

static void updateMember(){ 
    Dictionary<string, object> mergefieldsDic = new Dictionary<string, object>(); 
    mergefieldsDic.Add("POSTCODE","4242"); 

    Dictionary<string, bool> interestDic = new Dictionary<object, bool>(); 
    interestDic.Add("cb0b422bf8", true); 

    request.RequestFormat = DataFormat.Json; 
    request.AddBody(new MemberRequest(mergefieldsDic, interestDic)); 

    IRestResponse<Member> response = client.Execute<Member>(request); 

    foreach (var key in response.Data.merge_fields.Keys) 
    { 
     string value = response.Data.merge_fields[key].ToString(); 
     Console.WriteLine(value); 
    } 
    foreach (var key in response.Data.interests.Keys) 
    { 
     string value = response.Data.interests[key].ToString(); 
     Console.WriteLine(value); 
    } 
} 

내 MemberRequest 클래스는이

public class MemberRequest 
{ 
    public MemberRequest(){} 
    public MemberRequest(Dictionary<string, object> merge_fields, Dictionary<object, bool> interests) 
    { 
     this.merge_fields = merge_fields; 
     this.interests = interests; 
    } 
    public string email_address { get; set; } 
    public string status { get; set; } 
    public Dictionary<string,object> merge_fields { get; set; } 
    public Dictionary<object, bool> interests { get; set; } 
} 

처럼 보인다 그리고 내 회원 등급이

public class Member 
{ 
    public string id { get; set; } 
    public string email_address { get; set; } 
    public string status { get; set; } 
    public Dictionary<string,object> merge_fields { get; set; } 
    public Dictionary<object,bool> interests { get; set; } 
} 

I처럼 보인다 양익 사전을 <bool,object>,로 변경하려고 시도했습니다.및 <string,string>하지만 아무 것도 작동하지 않습니다. 나는를 만들려고 할 때

나는 내가 MemberRequest 클래스를 사용하고 그냥 내가하지만 멤버 업데이트 오류가 발생하지 않은 어떤 이유로 request.AddBody(new { interests = new { cb0b422bf8 = true} });

+1

'구독자를 관심사에 추가하고 싶을 때 작동하지 않습니다. '....'작동하지 않는다 '는 의미를 설명하십시오. 오류가 있었습니까? – ekad

+0

@ekad 제 질문에 더 잘 대해 주셔서 감사합니다. 나는 그것을 true로 설정하려고해도 부울 값이 false로 유지된다고 말하는 질문에 대해 다시 한번 말했습니다. – ptrask

답변

0

을하지 않으면 작동하도록에 도착 관리 앞서 말한 클래스를 가진 새로운 멤버 API로부터 객체가 아니라 배열이되어야한다는 잘못된 요청을 받았습니다. 이 문제를 해결하기 위해 Dictionary<string,bool>Dictionary<string,object>으로 변경했습니다.

처음에는 사전을 변경했을 때 거의 동일한 두 개의 생성자가 생겨 결국 "다음 방법이나 속성 사이에서 호출이 모호합니다."라는 오류가 발생했습니다.