2016-04-28 15 views
4

FacebookのメッセンジャーボットAPIをJavaで公開するオープンソースプロジェクトを作成した人は誰ですか? (または私は変換することができ、他の言語は?)Facebookメッセンジャーボットのオブジェクト構造(Java用)

で見つかったスタックのための基本的オブジェクト階層: https://developers.facebook.com/docs/messenger-platform/send-api-reference

は、私はむしろちょうど入ってくるJSONのチャットメッセージを抽出するためにJsonObjectsなども地図を使用していないだろうか発信チャットチャット応答を構築する。このためのオープンソースプロジェクトが存在する場合 - 私はそれを発見していません。

+1

私のサーバーがtomcatと同じ問題に直面していました。 Pojosとfb messenger webhookの契約を見つけることができませんでした。だから私はそれを自分で作った。 [こちらは](https://github.com/thekosmix/Java-FbChatBot)あなたのJavaサーバーwebhookとfbメッセンジャーの間の契約のリンク。これは、桟橋に展開可能な本格的な作業用プロジェクトです。 – thekosmix

+0

コスミックス、多くのありがとう。確かめます。 FBメッセンジャーボットの統合は、KikやSkypeよりはるかに簡単でした!誰がおっしゃいましたか? –

答えて

4

FaceBotをご覧ください。 FaceBotの目標は、Facebookのメッセンジャープラットフォームをより簡単にすることです。FaceBotを使用すると、自分のメッセンジャーボットを設定するコードが5行未満で済みます。ここで

は例です:

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!")); 
} 
} 

ご質問や助けが必要な場合は、私に連絡して自由に感じる(私は開発者です)。

1

私は現在、JBotと呼ばれるJavaのボットフレームワークに取り組んでいますが、fb部分は現在開発中ですが、スラックパートは既にいくつかの開発者によって使用されています。

3

オープンソースプロジェクトmessenger4jを使用すると、必要なものすべてを手に入れることができます。

Messenger Platformでチャットボットを作成するための使いやすいJavaライブラリです。

送信メッセージを作成するための豊富なビルダー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); 

ところで、私はそれを作りました。

+0

"免責事項 - 何か、特に責任を否定する声明"免責条項であなたは何を否定していますか:私はそれを作りましたか?おそらく、 "それを構築しました:"より適切であろう。そうでなければ、良い最初の答え! – MikeJRamsey56

+0

@ MikeJRamsey56ありがとう! 「免責事項」を「BTW」に変更しました。それは私が言ったかったものです:) –

関連する問題