Introduction
Integrating SMS capabilities into Liferay using Twilio’s API enhances communication by enabling direct messaging within the portal. This integration allows Liferay users to seamlessly send and receive SMS messages, leveraging Twilio’s reliable infrastructure. With customizable workflows, you can automate notifications, alerts, and user interactions, significantly improving engagement and user experience. This integration bridges the gap between web-based interactions and mobile communication, making your Liferay platform more versatile and user-friendly.
Prerequisites
- Liferay DXP/Portal 7.X
- Basic knowledge of Liferay
- IDE for Liferay development like Eclipse
- Twilio’s user account
Environmental Requirements
- Liferay Portal or DXP
- Twilio’s console
1) Setup Twilio
- Create a Twilio account and obtain your Account SID, Auth Token, and Twilio Phone Number.
- Add the Twilio SDK to your project. You can include the Twilio dependency in your pom.xml (for Maven) or build.gradle (for Gradle).
- Please use the below dependency for the Gradle project.
implementation group: 'com.twilio.sdk', name: 'twilio', version: '10.1.5'
- Please use the below dependency for the Maven project.
com.twilio.sdk
twilio
10.1.5
2) Code example to send a single SMS
- To send a single SMS you must need an Account SID, Auth Token, and Twilio Phone Number.
- If you are not purchasing a Twilio Phone Number, they provide one dummy phone number only for testing purposes.
- Use that dummy number to send the messages.
- Code example with Twilio API
Message message = Message.creator(new PhoneNumber(“To Phone Number”), new PhoneNumber("From Phone Number"), “Write you Message”).create();
- Please put the phone number with a valid country code in the place of “To Phone Number” like “+919********4”.
- Use your Twilio phone number instead of “From Phone Number”.
- Open Twilio.com and log in with your credentials, then navigate to Develop/Messaging/Try It Out/Send an SMS in the Left side panel to find your dummy or Twilio phone number.
3) Interaction with Twilio’s API in Java with Liferay’s workspace Module.
- Twilio.init() is a static method in the Twilio Java SDK that initializes the Twilio environment for your application. It authenticates your application with Twilio by using your Account SID and Auth Token. Both of these credentials are provided by Twilio when you create an account.
Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
- Every API request made to Twilio must be authenticated. Twilio.init() uses your ACCOUNT_SID and AUTH_TOKEN to authenticate each request you make through the Java SDK. Without this initialization, you cannot send messages, make calls, or perform any other actions using Twilio’s services.
4) Accessing Account SID and Auth Token
- Open twilio.com/console to get your Account SID and Auth Token.
- Navigate to the Account info section to access your information.
- Put that information in your code respectively.
public static final String ACCOUNT_SID = "AC19XXXXXXXXXXXXXXXXXXXXXX";
public static final String AUTH_TOKEN = "5b049cXXXXXXXXXXXX";
-
- Please use your Account SID and Auth Token instead of it.
package com.ignek.portal.sms.web.action;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;
public
class SendSmsAction {
// Find your Account Sid and Token at twilio.com/console
public
static final String ACCOUNT_SID = "AC19baXXXXXXXXXXXXX";
public
static final String AUTH_TOKEN = "5b049XXXXXXXXXXXXXXX";
private
static final Log log =
LogFactoryUtil.getLog(SendSmsMVCActionCommand.class.getName());
static { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); }
public
void sendMessage() throws Exception {
try {
Message message =
Message
.creator(new PhoneNumber("+918786***770"),
new PhoneNumber("+1208****155"),
"Hello This is a Liferay Developer From IGNEK!!!")
.create();
log.info("SMS sent successfully, SID: " + message.getSid());
} catch (Exception e) {
log.error(e);
}
}
}
6) Track your message status
- Using Liferay’s console
log.info("SMS sent successfully, SID: " + message.getSid());
- Insert the above line to get your sent message status
- Using Twilio’s Monitor
- https://console.twilio.com/us1/monitor/logs/sms
- Use the above link to track your message status using Twilio’s monitor functionality else navigate to Monitor/Logs/Messaging in the left-hand side panel after logging in to Twilio.
Conclusion
Integrating Twilio SMS into Liferay brings powerful communication capabilities to your platform, enabling real-time notifications, alerts, and engagement with users. By modularizing the SMS functionality within Liferay, you ensure reusability, scalability, and easier maintenance across your portal. This approach streamlines communication workflows, improves user experience, and provides flexibility for future enhancements. Leveraging Twilio’s reliable API along with Liferay’s robust framework allows you to build a highly adaptable and efficient messaging system that can scale with the needs of your application.