Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.codeBud7:facebook-messenger-java-lib:'
}
dependencies {
implementation("com.github.codeBud7:facebook-messenger-java-lib:")
}
<dependency>
<groupId>com.github.codeBud7</groupId>
<artifactId>facebook-messenger-java-lib</artifactId>
<version></version>
</dependency>
libraryDependencies += "com.github.codeBud7" % "facebook-messenger-java-lib" % ""
:dependencies [[com.github.codeBud7/facebook-messenger-java-lib ""]]
Facebook Messenger Library for Java
Implement MessengerProperties interface
Example:
@Config.Sources("classpath:messenger.properties")
public interface MessengerProperties extends Config, MessengerProperties
{
@Key("verify.token")
@DefaultValue("foo")
String getVerifyToken();
@Key("PAGE_ACCESS_TOKEN")
String getPageAccessToken();
@Key("api.message.endpoint")
@DefaultValue("https://graph.facebook.com/v2.6/me/messages")
String getMessageEndpoint();
@Key("api.user.endpoint")
@DefaultValue("https://graph.facebook.com/v2.6/")
String getUserEndpoint();
}
Create controller for verification
Example:
@RequestMapping(value = "/webhook", method = RequestMethod.GET)
@ResponseBody
private String verify(
@RequestParam(name = "hub.mode") final String hubMode,
@RequestParam(name = "hub.challenge") final String hubChallenge,
@RequestParam(name = "hub.verify_token") final String hubToken)
{
if (hubToken.equals(this.messengerProperties.getVerifyToken()))
{
return hubChallenge;
}
else
{
return NOT_AUTHORIZED;
}
}
@RequestMapping(value = "/webhook", method = RequestMethod.POST)
@ResponseBody
@ResponseStatus(HttpStatus.OK)
private void receive(@RequestBody final FacebookMessengerCallback facebookMessengerCallback)
{
if (FacebookMessengerCallback.FacebookMessengerCallbackType.RECEIVED.equals(facebookMessengerCallback.getType()))
{
this.exampleService.sendTextMessage(
facebookMessengerCallback.getMessageText(),
facebookMessengerCallback.getSender());
}
}
Use the FacebookMessengerHandler in your service
Example:
private FacebookMessengerHandler facebookMessengerHandler;
public ExampleService()
{
this.facebookMessengerHandler = new FacebookMessengerHandlerImpl(ConfigFactory.create(MessengerProperties.class, System.getenv()));
}
public void sendTextMessage(final String message, final Long recipientId)
{
this.facebookMessengerHandler.sendTextMessage(answer, recipientId);
}