it-swarm.com.ru

Структура объекта бота Facebook Messenger для java

Кто-нибудь создал проект с открытым исходным кодом, который представляет API-интерфейс бота Facebook Messenger в Java? (или другой язык, который я мог бы преобразовать?)

По сути, иерархия объектов для стека находится в: https://developers.facebook.com/docs/messenger-platform/send-api-reference

Я бы предпочел не просто использовать JsonObjects и т.д., Ни Карты для извлечения входящих сообщений чата JSON или для построения исходящих структурированных ответов чата. Если проект с открытым исходным кодом для этого существует - я не нашел его.

5
Lexi Mize

Посмотрите на FaceBot . Цель FaceBot - упростить платформу Messenger Facebook: для 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!"));
 }
}

Если у вас есть вопросы или вам нужна помощь, не стесняйтесь связаться со мной (я разработчик).

5
Aurasphere

С проектом с открытым исходным кодом 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("$10 Off Coupon")
                .amount(10.00F)
            .toList()
        .done()
        .build();

sendClient.sendTemplate("RECIPIENT_ID", receipt);

Кстати: я его построил.

4
Max Grabenhorst

В настоящее время я работаю над структурой бота в Java под названием JBot , и часть fb в настоящее время находится в стадии разработки, но часть Slack уже сделана и уже используется несколькими разработчиками.

1
Ram Patra