[英]MS Bot Framework 4.x SDK. How can I send raw JSON to a facebook messenger channel using C#
[英]How can I get Referral params from facebook messenger Bot Framework C#
我想根據他們用來訪問我的機器人的鏈接為Facebook用戶初始化一些數據。 我找到了這篇文章: https : //developers.facebook.com/docs/messenger-platform/referral-params,但是我不知道如何從bot框架(C#)中獲得引用參數。 我的目的是在這樣的鏈接上設置用戶數據庫: https ://m.me/ {BOT_ID}?ref = {SOME_MESSAGE}
任何幫助將不勝感激。
謝謝
(也在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; }
}
碼:
if (incomingMessage.TryGetChannelData(out FacebookChannelData channelDataInfo))
{
return channelDataInfo.RefParameter;
}
else
{
return String.Empty;
}
如您所見,有趣的值是此ChannelData中的字段“ Postback.Referral.Reference”或“ Referral.Reference”(鑒於它是否是新對話),因此我正在檢查第一個為null,在這種情況下嘗試獲取第二個
希望對您有所幫助。
PS:不要忘記在Messenger機器人設置上設置“開始”按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.