repat / respond-io-client
Client for respond.io contacts and messaging API
1.0
2024-05-28 19:03 UTC
Requires
- php: ^8.0 | ^8.1
- guzzlehttp/guzzle: ^6.0 | ^7.0
README
⚠️ WORK IN PROGRESS ⚠️
respond-io-client is the unofficial package for the respond.io messaging platform API. Version 0.1 supports API V1 and version 1.0 now supports V2 as well.
Pull requests welcome.
Installation
composer require repat/respond-io-client
Usage
The library will generally throw Guzzle's Exceptions, see API Error Codes in the respond.io documentation.
Setup
$apiToken = '...'; // Get an API token from the website, one per channel $options = []; // Guzzle Options - should probably be left empty, but just in case. // ... $client = new \Repat\RespondIoClient\Client($apiToken, $options);
Contacts
Please note that in case of Viber Channel - due to a certain limitation - the Contact ID needs to be provided in a Base64 encoded format.
// Get ID $id = '...'; // Set identifying field to use for searches, creation and updates $identifyingField = 'phone';
Get Contact
'Get a contact' respond.io documentation
// If you know the ID $client->getContactById($id);
Search for contacts
'List the contacts' respond.io documentation
$cursorId
: Start position for the search and isnull
by default. Responses from respond.io will contain a newcursorId
which can be used for subsequent calls. (Integer)$limit
: Number of records to return. Max of 100. (Integer)
$filter = new ContactFilter(); $filter->addFilter( field: 'phone', operator: 'isEqualTo', value: '+15551234567' ) $client->getContacts($filter, $cursorId, $limit);
Update Contacts
$identifyingField
: must exist as key in fields array
$fields = [ 'phone' => '+15557654321', ]; $client->updateContact($fields, $identifyingField);
Tags
$tags = ['foo', 'bar']; $client->addTag($id, $tags); $client->removeTag($id, $tags);
Create Contact
$identifyingField
: must exist as key in fields array
$fields = [ 'firstName' => 'John', 'lastName' => 'Doe', 'phone' => '+15551234567', 'email' => 'test@example.com' // ]; $client->createContact($fields, $identifyingField);
Messages
Send Message
$client->sendMessage($id, $text);
Send Attachment
$type = Client::TYPE_IMAGE; // 'image' // OR: // $type = Client::TYPE_AUDIO; // 'audio' // $type = Client::TYPE_VIDEO; // 'video' // $type = Client::TYPE_FILE; // 'file $url = 'https://repat.de/Bilder/repat40x40.png'; $client->sendAttachment($id, $type, $url);
ToDo
- Tests
- Message Template API
License
- MIT
Version
- API v1: Version 0.1 (initial version, work in progress)
- API v2: Version 1.0 (community maintained)
Contact
repat (v1 author)
- Homepage: repat.de
- e-mail: repat@repat.de
- Twitter: @repat123
- other communication/social media