-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmessaging.py
More file actions
84 lines (70 loc) · 3.16 KB
/
Copy pathmessaging.py
File metadata and controls
84 lines (70 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"""Examples for using the messaging client."""
from dotenv import load_dotenv
from siren import SirenClient
from siren.exceptions import SirenAPIError, SirenSDKError
from siren.models.messaging import ProviderCode
def send_direct_message_example(client: SirenClient) -> str:
"""Example of sending a direct message to a Slack user."""
try:
message_id = client.message.send(
recipient_value="U08FK1G6DGE",
channel="SLACK",
body="Hello! This is a direct message without template.",
provider_name="slack-test-py-sdk", # Optional, if not provided, the default provider will be used
provider_code=ProviderCode.SLACK, # Optional, if not provided, the default provider will be used
)
print(f"Message sent: {message_id}")
return message_id
except SirenAPIError as e:
print(f"API Error: {e.error_code} - {e.api_message}")
except SirenSDKError as e:
print(f"SDK Error: {e.message}")
def get_message_status_example(client: SirenClient, message_id: str) -> None:
"""Example of getting message status."""
try:
status = client.message.get_status(message_id=message_id)
print(f"Message status: {status}")
except SirenAPIError as e:
print(f"API Error: {e.error_code} - {e.api_message}")
except SirenSDKError as e:
print(f"SDK Error: {e.message}")
def send_template_message_example(client: SirenClient) -> str:
"""Example of sending a message using a template."""
try:
message_id = client.message.send(
recipient_value="U08FK1G6DGE",
channel="SLACK",
template_name="sampleTemplate",
template_variables={"user_name": "Alan"},
provider_name="slack-test-py-sdk", # Optional, if not provided, the default provider will be used
provider_code=ProviderCode.SLACK, # Optional, if not provided, the default provider will be used
)
print(f"Message sent: {message_id}")
return message_id
except SirenAPIError as e:
print(f"API Error: {e.error_code} - {e.api_message}")
except SirenSDKError as e:
print(f"SDK Error: {e.message}")
def get_replies_example(client: SirenClient, message_id: str) -> None:
"""Example of getting message replies."""
try:
replies = client.message.get_replies(message_id=message_id)
print(f"Found {len(replies)} replies:")
for i, reply in enumerate(replies):
print(f" Reply {i + 1}: {reply.text} (User: {reply.user})")
except SirenAPIError as e:
print(f"API Error: {e.error_code} - {e.api_message}")
except SirenSDKError as e:
print(f"SDK Error: {e.message}")
if __name__ == "__main__":
load_dotenv()
# Set environment variables: SIREN_API_KEY & SIREN_ENV (or pass as arguments)
client = SirenClient()
# Send direct message and check status
message_id = send_direct_message_example(client)
if message_id:
get_message_status_example(client, message_id)
# Send template message and get replies
message_id = send_template_message_example(client)
if message_id:
get_replies_example(client, message_id)