Ich habe begonnen, auf meinem Chatbot mit Bot Builder SDK in C# und Microsoft Bot Framework zu arbeiten. Ich habe meinen Bot eingesetzt und kann damit interagieren. Momentan konzentriere ich mich auf Facebook Messenger. Ich kann bereits Karten und Schaltflächen auf Messenger mit Microsoft.Bot.Connector.Attachment zeigen. Sie können es in Bot Connector Documentation finden. Jetzt versuche ich, benutzerdefinierte Facebook-Nachrichten zu implementieren, aber ohne Erfolg. mein Code hier:Microsoft Bot Framework Benutzerdefinierte Facebook-Nachrichten
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == "Message")
{
message.BotPerUserInConversationData = null;
if (message.Text.Equals("test", StringComparison.InvariantCultureIgnoreCase))
{
var replyMessage = message.CreateReplyMessage();
replyMessage.ChannelData = new
{
notification_type = "NO_PUSH",
attachment = new
{
type = "template",
payload = new
{
template_type = "receipt",
recipient_name = "Stephane Crozatier",
order_number = "12345678902",
currency = "USD",
payment_method = "Visa 2345",
order_url = "http://petersapparel.parseapp.com/order?order_id=123456",
timestamp = "1428444852",
elements = new[]
{
new {
title = "Classic White T-Shirt",
subtitle = "100% Soft and Luxurious Cotton",
quantity = 2,
price = 50,
currency = "USD",
image_url = "http://petersapparel.parseapp.com/img/whiteshirt.png"
},
new
{
title = "Classic Gray T-Shirt",
subtitle = "100% Soft and Luxurious Cotton",
quantity = 1,
price = 25,
currency = "USD",
image_url = "http://petersapparel.parseapp.com/img/grayshirt.png"
}
},
address = new
{
street_1 = "1 Hacker Way",
street_2 = "",
city = "Menlo Park",
postal_code = "94025",
state = "CA",
country = "US"
},
summary = new
{
subtotal = 75.00,
shipping_cost = 4.95,
total_tax = 6.19,
total_cost = 56.14
},
adjustments = new[]
{
new {name = "New Customer Discount", amount = 20},
new {name = "$10 Off Coupon", amount = 10}
}
}
}
};
return replyMessage;
}
// return our reply to the user
try
{
return await Conversation.SendAsync(message,() => new EchoDialog());
}
catch (Exception exc)
{
return message.CreateReplyMessage(exc.Message);
}
}
else
{
return HandleSystemMessage(message);
}
}
Zum Beispiel EchoDialog arbeitet und ich bekomme Ergebnisse. Ich kann Daten in der Botframeworkschnittstelle erhalten. Hier ist der JSON, den ich von meinem Bot bekomme:
{
"type": "Message",
"id": "CeBI3NS7w0k",
"conversationId": "D9b6pW1TY29TDUB5qx6CL5U59fv49oBQK5iKABIA0nFC0C8C",
"created": "2016-05-10T09:34:46.5131971Z",
"language": "en",
"text": "",
"attachments": [],
"from": {
"name": "TestBot",
"channelId": "test",
"address": "mytestbot",
"id": "mytestbot",
"isBot": true
},
"to": {
"name": "devportal",
"channelId": "test",
"address": "devportal",
"id": "JMQ0KLCKN6R",
"isBot": false
},
"replyToMessageId": "FUjcCRhTmu0",
"participants": [
{
"name": "devportal",
"channelId": "test",
"address": "devportal",
"id": "JMQ0KLCKN6R",
"isBot": false
},
{
"name": "TestBot",
"channelId": "test",
"address": "mytestbot",
"id": "mytestbot",
"isBot": true
}
],
"totalParticipants": 2,
"mentions": [],
"channelConversationId": "mytestbot",
"channelData": {
"notification_type": "NO_PUSH",
"attachment": {
"type": "template",
"payload": {
"template_type": "receipt",
"recipient_name": "Stephane Crozatier",
"order_number": "12345678902",
"currency": "USD",
"payment_method": "Visa 2345",
"order_url": "http://petersapparel.parseapp.com/order?order_id=123456",
"timestamp": "1428444852",
"elements": [
{
"title": "Classic White T-Shirt",
"subtitle": "100% Soft and Luxurious Cotton",
"quantity": 2,
"price": 50,
"currency": "USD",
"image_url": "http://petersapparel.parseapp.com/img/whiteshirt.png"
},
{
"title": "Classic Gray T-Shirt",
"subtitle": "100% Soft and Luxurious Cotton",
"quantity": 1,
"price": 25,
"currency": "USD",
"image_url": "http://petersapparel.parseapp.com/img/grayshirt.png"
}
],
"address": {
"street_1": "1 Hacker Way",
"street_2": "",
"city": "Menlo Park",
"postal_code": "94025",
"state": "CA",
"country": "US"
},
"summary": {
"subtotal": 75,
"shipping_cost": 4.95,
"total_tax": 6.19,
"total_cost": 56.14
},
"adjustments": [
{
"name": "New Customer Discount",
"amount": 20
},
{
"name": "$10 Off Coupon",
"amount": 10
}
]
}
}
},
"hashtags": []
}
* IDs und Namen geändert.
Hat es jemand geschafft, FB Messenger zur Anzeige von Vorlagen mit ChannelData zu bekommen?
Update: Ich überprüfte es von einem anderen fb-Konto und gelang es, Vorlage aber nur zum ersten Mal zu erhalten. Jeder nächste Versuch blieb mir ohne Antwort.