nimbasms_flutter
nimbasms_flutter is a Flutter plugin for interacting with the Nimba SMS API. It allows you to send SMS, manage contacts, retrieve messages, and perform other SMS-related operations using the Nimba SMS service.
Features
xSend SMSxRetrieve all messagesxRetrieve a specific message by IDxRetrieve account detailsxRetrieve the list of contactsxCreate a new contactxRetrieve the list of groupsCreate a verificationRequest verification
Tested Platforms and Status
xiOS - Tested and workingxmacOS - Tested and workingxAndroid - Tested and workingWindows - Not tested yetLinux - Not tested yetxWeb - Tested and working
Getting Started
Installation
Add nimbasms_flutter as a dependency in your pubspec.yaml file:
dependencies:
flutter:
sdk: flutter
nimbasms_flutter: ^1.0.0
Platform-specific Setup
To enable network access for your application, you need to configure specific settings for iOS, macOS, and Android.
iOS and macOS
To enable network access for your application on iOS and macOS, you need to modify the entitlement files and add the necessary permissions:
Update Entitlements:
- Open the
ios/Runner/Runner.entitlementsfile for iOS and themacos/Runner/DebugProfile.entitlementsandmacos/Runner/Release.entitlementsfiles for macOS. - Add the following lines to allow your application to make network requests:
<key>com.apple.security.network.client</key>
<true/>
Android
For Android, you need to add the Internet permission to allow your application to access the network.
- Open the
android/app/src/main/AndroidManifest.xmlfile. - Add the following line inside the
<manifest>tag to grant Internet access:
<uses-permission android:name="android.permission.INTERNET" />
This permission ensures that your application has the necessary permissions to perform network operations on Android.
Usage
Once the platform-specific setup is complete, you can start using the nimbasms_flutter plugin in your Flutter application.
1. Import the Package
First, import the nimbasms_flutter package in your Dart code:
import 'package:nimbasms_flutter/nimbasms_flutter.dart';
2. Initialize the NimbaSMS Client
Create an instance of the NimbaSMS class with your service ID and secret:
void main() async {
final nimbaSMS = NimbaSMS(
serviceId: 'YOUR_SERVICE_ID',
secret: 'YOUR_SECRET',
);
try {
// Example: Send an SMS
Map<String, dynamic> smsResponse = await nimbaSMS.send(
senderName: 'Nimba SMS',
recipients: ['623XXXXXXX'],
message: 'Hello, Nimba SMS',
);
print('SMS sent successfully: $smsResponse');
} catch (e) {
print('Error: $e');
}
}
3. Available Methods
Send an SMS
To send an SMS message using the Nimba SMS API:
final smsResponse = await nimbaSMS.send(
senderName: 'Nimba SMS', // The sender name
recipients: ['623XXXXXXX'], // List of phone numbers
message: 'Hello, this is a test message!', // The SMS body
);
Retrieve All Messages
You can retrieve all messages sent through your account:
final messages = await nimbaSMS.getMessages();
print(messages);
Retrieve a Message by ID
To get the details of a specific message by its ID:
final messageDetails = await nimbaSMS.getMessageById('MESSAGE_ID');
print(messageDetails);
Retrieve Account Details
To retrieve details about your Nimba SMS account:
final accountDetails = await nimbaSMS.getAccountDetails();
print(accountDetails);
Manage Contacts
You can retrieve or create contacts using the following methods:
-
Retrieve all contacts:
final contacts = await nimbaSMS.getContacts(); print(contacts); -
Create a new contact:
final newContact = await nimbaSMS.createContact( name: 'Sona Camara', groups: ['Famille', 'Amis'], numero: '623XXXXXXX', ); print(newContact);
Retrieve Groups
To retrieve the list of groups in your Nimba SMS account:
final groups = await nimbaSMS.getGroups();
print(groups);
Create a Verification
To create a verification request for a specific phone number:
final verification = await nimbaSMS.createVerification(
to: '623XXXXXXX',
);
print(verification);
Handling Errors
If an error occurs while using the plugin, it will throw an exception. You can catch errors like this:
try {
final messages = await nimbaSMS.getMessages();
} catch (e) {
print('Error: $e');
}
Contributing
Contributions are welcome! If you have any suggestions, issues, or improvements, feel free to create an issue or submit a pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.