는
내가 성공적으로 동일한 작업을 수행하려고 (또한 내 솔루션을 공유 할 수 GitHub의에 이슈 트래커 후 여기에 회신). 이상한 점은 첫째 :
- 가
FacebookChannelData
클래스를 정의 : 그래서 나는 다음과 같은 일을 해요 ... 당신이 이전에 봇 여부를 얘기하면 값이 같은 장소에 있지주의 어디 RefParameter는 JSON 메시지에서이 필드를 수신 얻기 위하여 당신이 원하는 매개 변수입니다
코드 :
public class FacebookChannelData
{
[JsonProperty("Sender")]
public Sender Sender { get; set; }
[JsonProperty("Recipient")]
public Recipient Recipient { get; set; }
[JsonProperty("Timestamp")]
public long Timestamp { get; set; }
[JsonProperty("Postback")]
public Postback Postback { get; set; }
[JsonProperty("Referral")]
public Referral Referral { get; set; }
public string RefParameter
{
get
{
string val = "";
if (Postback != null && Postback.Referral != null && !String.IsNullOrWhiteSpace(Postback.Referral.Reference))
{
val = Postback.Referral.Reference;
}
else if (Referral != null && !String.IsNullOrWhiteSpace(Referral.Reference))
{
val = Referral.Reference;
}
return val;
}
}
}
public class Recipient
{
[JsonProperty("Id")]
public string Id { get; set; }
[JsonProperty("Name")]
public string Name { get; set; }
}
public class Sender
{
[JsonProperty("Id")]
public string Id { get; set; }
[JsonProperty("Name")]
public string Name { get; set; }
}
public class Postback
{
[JsonProperty("Payload")]
public string Payload { get; set; }
[JsonProperty("Referral")]
public Referral Referral { get; set; }
}
public class Referral
{
[JsonProperty("Ref")]
public string Reference { get; set; }
[JsonProperty("Source")]
public string Source { get; set; }
[JsonProperty("Type")]
public string Type { get; set; }
}
- 그래서 페이스 북 수신 메시지의 ChannelData 같은입니다 점점 :
코드 : 당신이 볼 수 있듯이
if (incomingMessage.TryGetChannelData(out FacebookChannelData channelDataInfo))
{
return channelDataInfo.RefParameter;
}
else
{
return String.Empty;
}
, 흥미로운 값은 분야 "Postback.Referral.Reference"OR " Referral.Reference "이 ChannelData에서 (새로운 대화인지 아닌지를 고려하여) 첫 번째 항목이 null인지 확인하고 두 번째 항목을 얻으려는 경우
희망 사항 도움이됩니다.
추신 : Messenger 봇 설정에서 시작 버튼을 설정하는 것을 잊지 마십시오.
답장이 도움이 되었다면, 수락하는 것을 잊지 마십시오. 감사합니다. –
이 솔루션을 제공해 주셔서 감사합니다. 그것은 나를 꽤 두통으로 구해줬다. – SirDerpington