Skip to content

Commit 812bdb9

Browse files
committedAug 19, 2024
add RCS message samples
1 parent 2414cd5 commit 812bdb9

15 files changed

+625
-0
lines changed
 

‎.env.dist

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ PRODUCT_RETAILER_ID='YOUR_PRODUCT_RETAILER_ID'
1717
VIBER_SERVICE_MESSAGE_ID='YOUR_VIBER_SERVICE_MESSAGE_ID'
1818
IMAGE_URL='EXAMPLE_IMAGE_URL'
1919
WHATSAPP_TEMPLATE_REPLACEMENT_TEXT='EXAMPLE_TEMPLATE_REPLACEMENT_TEXT'
20+
RCS_SENDER_ID='YOUR_RCS_SENDER_ID'
2021

2122
## Messages Sandbox
2223
MESSAGES_SANDBOX_URL=

‎messages/rcs/revoke_message.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
14+
import vonage
15+
16+
client = vonage.Client(
17+
application_id=VONAGE_APPLICATION_ID,
18+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
19+
)
20+
21+
client.messages.revoke_outbound_message("MESSAGE_UUID")

‎messages/rcs/send_file.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "file",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"file": {"url": "https://example.com/file.pdf"},
30+
}
31+
)

‎messages/rcs/send_image.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "image",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"image": {"url": "https://example.com/image.jpg"},
30+
}
31+
)
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "custom",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"custom": {
30+
"contentMessage": {
31+
"richCard": {
32+
"carouselCard": {
33+
"cardWidth": "MEDIUM",
34+
"cardContents": [
35+
{
36+
"title": "Option 1: Photo",
37+
"description": "Do you prefer this photo?",
38+
"suggestions": [
39+
{
40+
"reply": {
41+
"text": "Option 1",
42+
"postbackData": "card_1",
43+
}
44+
}
45+
],
46+
"media": {
47+
"height": "MEDIUM",
48+
"contentInfo": {
49+
"fileUrl": "'$IMAGE_URL'",
50+
"forceRefresh": "false",
51+
},
52+
},
53+
},
54+
{
55+
"title": "Option 2: Video",
56+
"description": "Or this video?",
57+
"suggestions": [
58+
{
59+
"reply": {
60+
"text": "Option 2",
61+
"postbackData": "card_2",
62+
}
63+
}
64+
],
65+
"media": {
66+
"height": "MEDIUM",
67+
"contentInfo": {
68+
"fileUrl": "'$VIDEO_URL'",
69+
"forceRefresh": "false",
70+
},
71+
},
72+
},
73+
],
74+
}
75+
}
76+
}
77+
},
78+
}
79+
)
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "custom",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"custom": {
30+
"contentMessage": {
31+
"richCard": {
32+
"standaloneCard": {
33+
"thumbnailImageAlignment": "RIGHT",
34+
"cardOrientation": "VERTICAL",
35+
"cardContent": {
36+
"title": "Quick question",
37+
"description": "Do you like this picture?",
38+
"media": {
39+
"height": "TALL",
40+
"contentInfo": {
41+
"fileUrl": "'$IMAGE_URL'",
42+
"forceRefresh": "false",
43+
},
44+
},
45+
"suggestions": [
46+
{
47+
"reply": {
48+
"text": "Yes",
49+
"postbackData": "suggestion_1",
50+
}
51+
},
52+
{
53+
"reply": {
54+
"text": "I love it!",
55+
"postbackData": "suggestion_2",
56+
}
57+
},
58+
],
59+
},
60+
}
61+
}
62+
}
63+
},
64+
}
65+
)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "custom",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"custom": {
30+
"contentMessage": {
31+
"text": "Product Launch: Save the date!",
32+
"suggestions": [
33+
{
34+
"action": {
35+
"text": "Save to calendar",
36+
"postbackData": "postback_data_1234",
37+
"fallbackUrl": "https://www.google.com/calendar",
38+
"createCalendarEventAction": {
39+
"startTime": "2024-06-28T19:00:00Z",
40+
"endTime": "2024-06-28T20:00:00Z",
41+
"title": "Vonage API Product Launch",
42+
"description": "Event to demo Vonage\'s new and exciting API product",
43+
},
44+
}
45+
}
46+
],
47+
}
48+
},
49+
}
50+
)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "custom",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"custom": {
30+
"contentMessage": {
31+
"text": "Call us to claim your free gift!",
32+
"suggestions": [
33+
{
34+
"action": {
35+
"text": "Call now!",
36+
"postbackData": "postback_data_1234",
37+
"fallbackUrl": "https://www.example.com/contact/",
38+
"dialAction": {"phoneNumber": "+447900000000"},
39+
}
40+
}
41+
],
42+
}
43+
},
44+
}
45+
)
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
dotenv_path = join(dirname(__file__), "../../.env")
6+
load_dotenv(dotenv_path)
7+
8+
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
9+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
10+
"VONAGE_APPLICATION_PRIVATE_KEY_PATH"
11+
)
12+
13+
TO_NUMBER = os.environ.get("TO_NUMBER")
14+
RCS_SENDER_ID = os.environ.get("RCS_SENDER_ID")
15+
16+
import vonage
17+
18+
client = vonage.Client(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
23+
client.messages.send_message(
24+
{
25+
"channel": "rcs",
26+
"message_type": "custom",
27+
"to": TO_NUMBER,
28+
"from": RCS_SENDER_ID,
29+
"custom": {
30+
"contentMessage": {
31+
"text": "Need some help? Call us now or visit our website for more information.",
32+
"suggestions": [
33+
{
34+
"action": {
35+
"text": "Call us",
36+
"postbackData": "postback_data_1234",
37+
"fallbackUrl": "https://www.example.com/contact/",
38+
"dialAction": {"phoneNumber": "+447900000000"},
39+
}
40+
},
41+
{
42+
"action": {
43+
"text": "Visit site",
44+
"postbackData": "postback_data_1234",
45+
"openUrlAction": {"url": "http://example.com/"},
46+
}
47+
},
48+
],
49+
}
50+
},
51+
}
52+
)

0 commit comments

Comments
 (0)