Manages configurations per agent for Facebook API communications.
JIVAS action wrapper for Facebook API communications with advanced mass messaging outbox. This action provides a wrapper for Facebook API communications using the Facebook Developer API. As a core action, it simplifies and streamlines interactions with Facebook. The package is a singleton and requires the Jivas library version ^2.0.0.
jivas/facebook_action
FacebookAction
~2.0.0-aplha.40
~0.0.2
Below is detailed guidance on how to configure and use the Facebook Action.
The Facebook Action provides an abstraction layer for interacting with Facebook via the Facebook Developer API. It supports multiple configurations for various use cases, including:
The Facebook Action includes advanced mechanisms to optimize message delivery:
To use the Facebook Action, you need to set up the following configuration parameters. These specify connection and behavioral details.
Parameter | Type | Description | Default |
---|---|---|---|
api_url |
string | The base URL of the Facebook Graph API. | "https://graph.facebook.com/v21.0/" |
base_url |
string | The base URL of the JIVAS instance. | "" |
webhook_url |
string | The generated webhook URL. | "" |
app_id |
string | The Facebook app ID. | "" |
app_secret |
string | The Facebook app secret. | "" |
page_id |
string | The Facebook page ID. | "" |
page_access_token |
string | The Facebook page access token. | "" |
webhook_verify_token |
string | The Facebook webhook verification token. | "123" |
use_pushname |
bool | Use the Facebook push name as the user name when set to True . |
True |
chunk_length |
int | The maximum length of message to send. Longer texts are split into subsequent messages. | 1024 |
request_timeout |
float | Length of time (in seconds) this action waits for the API to complete a request. | 10.0 |
outbox_base_rate_per_minute |
int | The base messages per minute (adapts dynamically). | 20 |
outbox_send_interval |
float | The current operational delay between batches. | 1.0 |
outbox_min_send_interval |
float | The absolute minimum delay (seconds). | 1.0 |
outbox_max_send_interval |
float | The maximum allowed delay (seconds). | 10.0 |
outbox_min_batch_size |
int | The minimum batch size of messages to send from the outbox. | 1 |
outbox_max_batch_size |
int | The maximum batch size of messages to send from the outbox. | 10 |
webhook_url
must be a publicly accessible endpoint to enable event-driven communication from Facebook.outbox_base_rate_per_minute
to 20
for new numbers. This value should align with Facebook's acceptable rate-per-minute limits (default is 20
).outbox_max_batch_size
at or below 10
to comply with account limitations.chunk_length
if you have use cases that involve very long text messages.ignore_newsletters
and ignore_forwards
to filter out less relevant messages and avoid unnecessary processing.These guidelines help optimize performance and ensure compliance with Facebook's messaging policies.
Endpoint: /action/walker
Method: POST
{
"agent_id": "<AGENT_ID>",
"walker": "broadcast_message",
"module_root": "actions.jivas.facebook_action",
"args": {
"message": {
"message_type": "TEXT|MEDIA|MULTI",
...
},
"ignore_list": ["session_id_1", ...]
}
}
Endpoint: /action/walker
Method: POST
{
"agent_id": "<AGENT_ID>",
"walker": "send_messages",
"module_root": "actions.jivas.facebook_action",
"args": {
"messages": [
// Array of message objects
],
"callback_url": "https://your-callback.url"
}
}
{
"messages": [
{
"to": "session_id",
"message": {
"message_type": "TEXT",
"content": "Batch message"
}
}
],
"callback_url": "https://example.com/status"
}
Returns a job ID string for tracking.
Your callback will receive a JSON payload with the following structure automatically upon job completion:
{
"status": "success|partial|error",
"job_id": "<UUID>",
"processed_count": 10,
"failed_count": 2,
"pending_count": 0
}
{
"message": {
"message_type": "TEXT",
"content": "Hello World"
}
}
{
"message": {
"message_type": "MEDIA",
"mime": "image/jpeg",
"content": "Check this!",
"data": {
"url": "https://example.com/image.jpg",
"file_name": "image.jpg"
}
}
}
{
"message": {
"message_type": "MULTI",
"content": [
// Array of TEXT/MEDIA messages
]
}
}
Save the following, as you will need them for configuration:
base_url = "https://your_base_url"
app_id = "your_app_id"
app_secret = "your_app_secret"
page_id = "your_page_id"
page_access_token = "your_page_access_token"
webhook_verify_token = "your_verify_token"
facebook_action
project.git clone https://github.com/TrueSelph/facebook_action
git checkout -b new-feature-x
git commit -m 'Implemented new feature x.'
git push origin new-feature-x
This project is protected under the Apache License 2.0. See LICENSE for more information.
jvcli download action jivas/facebook_action