java 的 Facebook Messenger 机器人对象结构
Facebook Messenger bot object structure for java
是否有人创建了公开源代码项目来公开 java 中的 facebook messenger bot API? (或者我可以转换的另一种语言?)
本质上,堆栈的对象层次结构位于:
https://developers.facebook.com/docs/messenger-platform/send-api-reference
我不想只使用 JsonObjects 等,也不想使用地图来提取传入的 JSON 聊天消息或构建传出的结构化聊天回复。如果存在这方面的开源项目——我还没有找到它。
我目前正在 java 开发一个名为 JBot 的机器人框架,fb 部分目前正在开发中,但 Slack 部分已经完成并已被多个开发人员使用。
看看FaceBot。 FaceBot 的目标是使 Facebook 的 Messenger 平台更容易:使用 FaceBot,您只需不到 5 行代码即可设置您自己的 Messenger 机器人。
这是一个例子:
public class MyFaceBotBehavior extends AbstractFaceBot {
public void defineBehavior() {
// Setting my tokens from Facebook (page token and validation token for webhook).
FaceBotContext.getInstance().setup("myFacebookPageToken", "myFacebookWebhookValidationToken");
// Defining a bot which will reply with "Hello World!" as soon as I write "Hi"
addActionFrame(new MessageEvent("Hi"),
new MessageAutoReply("Hello World!"));
}
}
如果您有任何疑问或需要帮助,请随时与我联系(我是开发人员)。
有了开源项目messenger4j,你会得到你需要的一切。
这是一个易于使用的 Java 库,用于在 Messenger 平台上构建聊天机器人。
它提供了丰富的构建器 API 来构建传出消息。
此外,它将入站消息解析为特定 java 对象并自动检测它们的类型。对于每种消息类型或事件,您都可以注册相应的事件处理程序。
接收:
String payload = ... // callback request body
String signature = ... // 'X-Hub-Signature' request header
// JDK 8 version
MessengerReceiveClient receiveClient = MessengerPlatform.newReceiveClientBuilder("APP_SECRET", "VERIFICATION_TOKEN")
.onTextMessageEvent(event -> System.out.printf("%s: %s", event.getSender().getId(), event.getText()))
.build();
// JDK 7 version
MessengerReceiveClient receiveClient = MessengerPlatform.newReceiveClientBuilder("APP_SECRET", "VERIFICATION_TOKEN")
.onTextMessageEvent(new TextMessageEventHandler() {
@Override
public void handle(TextMessageEvent event) {
System.out.printf("%s: %s", event.getSender().getId(), event.getText());
}
})
.build();
receiveClient.processCallbackPayload(payload, signature);
发送(简单):
MessengerSendClient sendClient = MessengerPlatform.newSendClientBuilder("PAGE_ACCESS_TOKEN").build();
sendClient.sendTextMessage("RECIPIENT_ID", "Hi there, how are you today?");
发送(复杂):
ReceiptTemplate receipt = ReceiptTemplate.newBuilder("Stephane Crozatier", "12345678902", "USD", "Visa 2345")
.orderUrl("http://petersapparel.parseapp.com/order?order_id=123456")
.timestamp(1428444852L)
.addElements()
.addElement("Classic White T-Shirt", 50F)
.subtitle("100% Soft and Luxurious Cotton")
.quantity(2)
.currency("USD")
.imageUrl("http://petersapparel.parseapp.com/img/whiteshirt.png")
.toList()
.addElement("Classic Gray T-Shirt", 25F)
.subtitle("100% Soft and Luxurious Cotton")
.quantity(1)
.currency("USD")
.imageUrl("http://petersapparel.parseapp.com/img/grayshirt.png")
.toList()
.done()
.addAddress("1 Hacker Way", "Menlo Park", "94025", "CA", "US").street2("").done()
.addSummary(56.14F).subtotal(75.00F).shippingCost(4.95F).totalTax(6.19F).done()
.addAdjustments()
.addAdjustment()
.name("New Customer Discount")
.amount(20.00F)
.toList()
.addAdjustment()
.name(" Off Coupon")
.amount(10.00F)
.toList()
.done()
.build();
sendClient.sendTemplate("RECIPIENT_ID", receipt);
顺便说一句:我建好了。
是否有人创建了公开源代码项目来公开 java 中的 facebook messenger bot API? (或者我可以转换的另一种语言?)
本质上,堆栈的对象层次结构位于: https://developers.facebook.com/docs/messenger-platform/send-api-reference
我不想只使用 JsonObjects 等,也不想使用地图来提取传入的 JSON 聊天消息或构建传出的结构化聊天回复。如果存在这方面的开源项目——我还没有找到它。
我目前正在 java 开发一个名为 JBot 的机器人框架,fb 部分目前正在开发中,但 Slack 部分已经完成并已被多个开发人员使用。
看看FaceBot。 FaceBot 的目标是使 Facebook 的 Messenger 平台更容易:使用 FaceBot,您只需不到 5 行代码即可设置您自己的 Messenger 机器人。
这是一个例子:
public class MyFaceBotBehavior extends AbstractFaceBot {
public void defineBehavior() {
// Setting my tokens from Facebook (page token and validation token for webhook).
FaceBotContext.getInstance().setup("myFacebookPageToken", "myFacebookWebhookValidationToken");
// Defining a bot which will reply with "Hello World!" as soon as I write "Hi"
addActionFrame(new MessageEvent("Hi"),
new MessageAutoReply("Hello World!"));
}
}
如果您有任何疑问或需要帮助,请随时与我联系(我是开发人员)。
有了开源项目messenger4j,你会得到你需要的一切。
这是一个易于使用的 Java 库,用于在 Messenger 平台上构建聊天机器人。
它提供了丰富的构建器 API 来构建传出消息。 此外,它将入站消息解析为特定 java 对象并自动检测它们的类型。对于每种消息类型或事件,您都可以注册相应的事件处理程序。
接收:
String payload = ... // callback request body
String signature = ... // 'X-Hub-Signature' request header
// JDK 8 version
MessengerReceiveClient receiveClient = MessengerPlatform.newReceiveClientBuilder("APP_SECRET", "VERIFICATION_TOKEN")
.onTextMessageEvent(event -> System.out.printf("%s: %s", event.getSender().getId(), event.getText()))
.build();
// JDK 7 version
MessengerReceiveClient receiveClient = MessengerPlatform.newReceiveClientBuilder("APP_SECRET", "VERIFICATION_TOKEN")
.onTextMessageEvent(new TextMessageEventHandler() {
@Override
public void handle(TextMessageEvent event) {
System.out.printf("%s: %s", event.getSender().getId(), event.getText());
}
})
.build();
receiveClient.processCallbackPayload(payload, signature);
发送(简单):
MessengerSendClient sendClient = MessengerPlatform.newSendClientBuilder("PAGE_ACCESS_TOKEN").build();
sendClient.sendTextMessage("RECIPIENT_ID", "Hi there, how are you today?");
发送(复杂):
ReceiptTemplate receipt = ReceiptTemplate.newBuilder("Stephane Crozatier", "12345678902", "USD", "Visa 2345")
.orderUrl("http://petersapparel.parseapp.com/order?order_id=123456")
.timestamp(1428444852L)
.addElements()
.addElement("Classic White T-Shirt", 50F)
.subtitle("100% Soft and Luxurious Cotton")
.quantity(2)
.currency("USD")
.imageUrl("http://petersapparel.parseapp.com/img/whiteshirt.png")
.toList()
.addElement("Classic Gray T-Shirt", 25F)
.subtitle("100% Soft and Luxurious Cotton")
.quantity(1)
.currency("USD")
.imageUrl("http://petersapparel.parseapp.com/img/grayshirt.png")
.toList()
.done()
.addAddress("1 Hacker Way", "Menlo Park", "94025", "CA", "US").street2("").done()
.addSummary(56.14F).subtotal(75.00F).shippingCost(4.95F).totalTax(6.19F).done()
.addAdjustments()
.addAdjustment()
.name("New Customer Discount")
.amount(20.00F)
.toList()
.addAdjustment()
.name(" Off Coupon")
.amount(10.00F)
.toList()
.done()
.build();
sendClient.sendTemplate("RECIPIENT_ID", receipt);
顺便说一句:我建好了。