是否可以使用Java发送Facebook消息?

时间:2017-07-27 01:33:12

标签: java facebook

我搜索过,找不到任何与Java一起使用的Facebook API。你们中的任何人都知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

您可以使用此库连接Facebook Messenger https://github.com/BotMill/fb-botmill

步骤: 添加对pom文件的依赖

<dependency>
  <groupId>co.aurasphere.botmill</groupId>
  <artifactId>fb-botmill</artifactId>
  <version>2.0.0-RC3</version>
</dependency>

然后将以下映射添加到您的web.xml

<servlet>
    <servlet-name>myFbBot</servlet-name>
    <servlet-class>co.aurasphere.botmill.fb.FbBotMillServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>myFbBot</servlet-name>
    <url-pattern>/myFbBot</url-pattern>
</servlet-mapping>

在类路径中创建botmill.properties文件并添加您的标记。

fb.page.token=<PAGE_TOKEN>
fb.validation.token=<VALIDATION_TOKEN>

在下面创建一个FbBotConfiguration并将所有初始配置(一次配置)放在构造函数上。这也将初始化fb身份验证。

@BotConfiguration
public class MyBotConfiguration extends FbBotConfiguration {

    public MyBotConfiguration() {

        MessengerProfileApi.setGetStartedButton("get_started");
        MessengerProfileApi.setGreetingMessage("Hello!");

        List<PersistentMenu> persistentMenus = new ArrayList<PersistentMenu>();
        PersistentMenu persistentMenu = new PersistentMenu("default", false);

        persistentMenu.addCallToAction(ButtonFactory.createPostbackButton("Menu 1", "menu1"));
        persistentMenu.addCallToAction(ButtonFactory.createPostbackButton("Menu 2", "menu2"));

        CallToActionNested theNestedMenu = new CallToActionNested("Menu 3 Nested");
        theServices.addCallToActionButton(ButtonFactory.createPostbackButton("Nested1", "nested1"));
        theServices.addCallToActionButton(ButtonFactory.createPostbackButton("Nested2", "nested2"));
        theServices.addCallToActionButton(ButtonFactory.createPostbackButton("Nested3", "nested3"));
        persistentMenu.addCallToAction(theNestedMenu);

        persistentMenus.add(persistentMenu);

        MessengerProfileApi.setPersistentMenus(persistentMenus);

        HomeUrl homeUrl = new HomeUrl();
        homeUrl.setInTest(true);
        homeUrl.setUrl("https://extensionlink.co");
        homeUrl.setWebviewHeightRatio(WebViewHeightRatioType.TALL);
        homeUrl.setWebviewShareButton(WebViewShareButton.SHOW);

        MessengerProfileApi.setHomeUrl(homeUrl);

    }

}

然后创建以下类以添加响应。

@Bot
public class MyBotClass extends FbBot {

    @FbBotMillController(eventType=FbBotMillEventType.MESSAGE, text="Hi",caseSensitive = true)
    public void sendMessage(MessageEnvelope envelope) {
        reply(new MessageAutoReply("Hello World!"));
    }
}

配置Facebook App

  1. open developers.facebook.com/apps
  2. 点击“添加新应用”按钮
  3. 输入显示名称,例如messenger4j-FB-应用
  4. 选择类别:'Messenger for Messenger'
  5. 点击“创建应用ID”按钮
  6. “令牌生成”部分:选择您创建的FB页面,例如演示
  7. 使用'页面访问令牌'并在botmill.properties文件中使用随机生成的字符串作为'验证令牌'

      

    注意:要与Facebook Messenger连接,我们需要启用SSL的服务器。   因此,要使用Heroku测试应用程序,请执行以下步骤。

    1. 首先登录Heroku并创建一个帐户。
    2. 执行git push heroku master
    3. 导航回'Messenger'
    4. 章节'Webhooks':点击'Setup Webhooks'按钮进入 回调网址:.herokuapp.com / callback,例如 demo-heroku-app.herokuapp.com/callback
    5. 输入生成的验证令牌,例如retgdkfjsjklsklj34qdfs
    6. 选择以下订阅字段:消息, messaging_postbacks,messaging_optins,message_deliveries, message_reads,messaging_account_linking,message_echoes
    7. 点击“验证并保存”按钮
    8. “Webhooks”部分:选择您创建的FB页面以订阅您的 webhook到页面事件,例如演示
    9. 点击“订阅”按钮
    10. 测试新的Chatbot

      1. open messenger.com
      2. 使用您创建的FB页面的名称搜索您的Chatbot,例如 演示
      3. 发送消息

答案 1 :(得分:0)

他们的官方API / SDK文档列出了多个第三方java sdks。 https://developers.facebook.com/docs/apis-and-sdks