A modern PHP client for seamless integration with the SMS Gateway for Android API. Send SMS messages, manage devices, and configure webhooks through your PHP applications with this intuitive library.
- Builder Pattern: Fluent interface for message and settings configuration
- PSR Standards: Compatible with any PSR-18 HTTP client
- Comprehensive API: Access to all SMS Gateway endpoints
- Error Handling: Structured exception management
- Type Safety: Strict typing throughout the codebase
- Encryption Support: End-to-end message encryption
composer require capcom6/android-sms-gateway
<?php
require 'vendor/autoload.php';
use AndroidSmsGateway\Client;
use AndroidSmsGateway\Domain\MessageBuilder;
// Initialize client with credentials
$client = new Client('your_login', 'your_password');
// Build message with fluent interface
$message = (new MessageBuilder('Your message text here.', ['+1234567890']))
->setTtl(3600) // Message time-to-live in seconds
->setSimNumber(1) // Use SIM slot 1
->setWithDeliveryReport(true) // Request delivery report
->setPriority(100) // Higher priority message
->build();
// Send message
try {
$messageState = $client->SendMessage($message);
echo "✅ Message sent! ID: " . $messageState->ID() . PHP_EOL;
// Check status after delay
sleep(5);
$updatedState = $client->GetMessageState($messageState->ID());
echo "📊 Message status: " . $updatedState->State() . PHP_EOL;
} catch (\Exception $e) {
echo "❌ Error: " . $e->getMessage() . PHP_EOL;
exit(1);
}
// List registered devices
$devices = $client->ListDevices();
echo "📱 Registered devices: " . count($devices) . PHP_EOL;
// Remove a device
try {
$client->RemoveDevice('device-id-123');
echo "🗑️ Device removed successfully" . PHP_EOL;
} catch (\Exception $e) {
echo "❌ Device removal failed: " . $e->getMessage() . PHP_EOL;
}
$client = new Client(
string $login,
string $password,
string $serverUrl = 'https://api.sms-gate.app/3rdparty/v1',
?\Psr\Http\Client\ClientInterface $httpClient = null,
?\AndroidSmsGateway\Encryptor $encryptor = null
);
Category | Method | Description |
---|---|---|
Messages | SendMessage(Message $message) |
Send SMS message |
GetMessageState(string $id) |
Get message status by ID | |
RequestInboxExport(MessagesExportRequest $request) |
Request inbox export via webhooks | |
Devices | ListDevices() |
List registered devices |
RemoveDevice(string $id) |
Remove device by ID | |
System | HealthCheck() |
Check API health status |
GetLogs(?string $from, ?string $to) |
Retrieve system logs | |
Settings | GetSettings() |
Get account settings |
PatchSettings(Settings $settings) |
Partially update account settings | |
ReplaceSettings(Settings $settings) |
Replace account settings | |
Webhooks | ListWebhooks() |
List registered webhooks |
RegisterWebhook(Webhook $webhook) |
Register new webhook | |
DeleteWebhook(string $id) |
Delete webhook by ID |
// Message Builder
$message = (new MessageBuilder(string $text, array $recipients))
->setTtl(int $seconds)
->setSimNumber(int $simSlot)
->setWithDeliveryReport(bool $enable)
->setPriority(int $value)
->build();
- Never store credentials in code - Use environment variables:
$login = getenv('SMS_GATEWAY_LOGIN'); $password = getenv('SMS_GATEWAY_PASSWORD');
- Use HTTPS - Ensure all API traffic is encrypted
- Validate inputs - Sanitize phone numbers and message content
- Rotate credentials - Regularly update your API credentials
use AndroidSmsGateway\Encryptor;
// Initialize client with encryption
$encryptor = new Encryptor('your-secret-passphrase');
$client = new Client($login, $password, Client::DEFAULT_URL, null, $encryptor);
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
git clone https://github.com/android-sms-gateway/client-php.git
cd client-php
composer install
This library is open-sourced software licensed under the Apache-2.0 license.
Note: Android is a trademark of Google LLC. This project is not affiliated with or endorsed by Google.