puzzel_sms_gateway_client 2.0.2

Creator: railscoder56

Last updated:

Add to Cart

Description:

puzzel sms gateway client 2.0.2

Puzzel SMS Gateway Python Client







Copyright 2024 Puzzel AS
Released under the MIT license.
Python client for the Puzzel SMS Gateway.
Contents

Prerequisites
Installation

Using pip
Using Poetry


Usage

Importing as a module
Using classes directly
Using object instantiation
Sending message to multiple recipients



Prerequisites
python = "^3.10.5"
requests = "^2.28.1"
pydantic = "^1.9.1"
fastapi = "^0.78.0"

Please see pyproject.toml for the full citation information.
Installation
Using pip
python -m pip install puzzel_sms_gateway_client

Using Poetry
poetry add puzzel_sms_gateway_client

Usage
For all the following examples it is recommended to define the following needed variables as secrets in your repository, environment variables or as constants in the script.
Importing as a module
import puzzel_sms_gateway_client as smsgw

BASE_ADDRESS: str = "https://[YOUR_SERVER_ADDRESS]/gw/rs"
SERVICE_ID: int = [YOUR_SERVICE_ID]
USERNAME: str = "[YOUR_USERNAME]"
PASSWORD: str = "[YOUR_PASSWORD]"


client = smsgw.Client(
service_id=SERVICE_ID,
username=USERNAME,
password=PASSWORD,
base_address=BASE_ADDRESS,
)

response = client.send(
messages=[
smsgw.Message(
recipient="+47xxxxxxxxx", # Country code + phone number
content="Hello World!",
),
]
)

Using classes directly
from puzzel_sms_gateway_client import (
Client,
GasSettings,
Message,
MessageSettings,
OriginatorSettings,
Parameter,
SendWindow,
)


BASE_ADDRESS: str = "https://[YOUR_SERVER_ADDRESS]/gw/rs"
SERVICE_ID: int = [YOUR_SERVICE_ID]
USERNAME: str = "[YOUR_USERNAME]"
PASSWORD: str = "[YOUR_PASSWORD]"


client = Client(
service_id=SERVICE_ID,
username=USERNAME,
password=PASSWORD,
base_address=BASE_ADDRESS,
)

response = client.send(
messages=[
Message(
recipient="+47xxxxxxxxx", # Country code + phone number
content="Hello World!",
settings=MessageSettings( # Optional
send_window=SendWindow(
start_date="2022-07-13",
stop_date="2022-07-13", # Optional
start_time="15:20:00",
stop_time="15:30:00", # Optional
),
),
),
]
)

Using object instantiation
from puzzel_sms_gateway_client import (
Client,
GasSettings,
Message,
MessageSettings,
OriginatorSettings,
Parameter,
SendWindow,
)

BASE_ADDRESS: str = "https://[YOUR_SERVER_ADDRESS]/gw/rs"
SERVICE_ID: int = [YOUR_SERVICE_ID]
USERNAME: str = "[YOUR_USERNAME]"
PASSWORD: str = "[YOUR_PASSWORD]"

gas_settings = GasSettings(
service_code="02001",
description="SMS", # Optional
)

originator_settings = OriginatorSettings(
originator_type="NETWORK",
originator="1960",
)

send_window = SendWindow(
start_date="2022-07-14",
stop_date="2022-07-14", # Optional
start_time="09:20:00",
stop_time="09:30:00", # Optional
)

parameter = Parameter( # All are optional
business_model="contact center",
dcs="F5",
udh="0B0504158200000023AB0201",
pid=65,
flash=True,
parsing_type="AUTO_DETECT",
skip_customer_report_delivery=True,
strex_verification_timeout="10",
strex_merchant_sell_option="pin",
strex_confirm_channel="sms",
strex_authorization_token="some_token",
)

message_settings = MessageSettings( # All are optional
priority=1,
validity=173,
differentiator="sms group 1",
invoice_node="marketing department",
age=18,
new_session=True,
session_id="01bxmt7f8b8h3zkwe2vg",
auto_detect_encoding=True,
safe_remove_non_gsm_characters=True, # Deprecated
originator_settings=originator_settings,
gas_settings=gas_settings,
send_window=send_window,
parameter=parameter,
)


client = Client(
service_id=SERVICE_ID,
username=USERNAME,
password=PASSWORD,
base_address=BASE_ADDRESS,
batch_reference="some_batch_reference", # Optional
)

message = Message(
recipient="+47xxxxxxxxx", # Country code + phone number
content="Hello World!",
price=100, # Optional
client_reference="some_client_reference", # Optional
settings=message_settings, # Optional
)

response = client.send(messages=[message])

Sending message to multiple recipients
import json

from puzzel_sms_gateway_client import (
Client,
Message,
)

BASE_ADDRESS: str = "https://[YOUR_SERVER_ADDRESS]/gw/rs"
SERVICE_ID: int = [YOUR_SERVICE_ID]
USERNAME: str = "[YOUR_USERNAME]"
PASSWORD: str = "[YOUR_PASSWORD]"

recipients = [
"+47xxxxxxxx1", # Country code + phone number
"+47xxxxxxxx2", # Country code + phone number
]


client = Client(
service_id=SERVICE_ID,
username=USERNAME,
password=PASSWORD,
base_address=BASE_ADDRESS,
)

response = client.send(
messages=[
Message(
content="Hello World!",
)
],
recipients=recipients,
)

print(json.dumps(response.json(), indent=4))

Output:
{
"batchReference": "60908fdd-6da7-4658-b0f7-5685e513c19f",
"messageStatus": [
{
"statusCode": 1,
"statusMessage": "Message enqueued for sending",
"clientReference": null,
"recipient": "+47xxxxxxxx1",
"messageId": "7a04egxihb00",
"sessionId": null,
"sequenceIndex": 1
},
{
"statusCode": 1,
"statusMessage": "Message enqueued for sending",
"clientReference": null,
"recipient": "+47xxxxxxxx2",
"messageId": "7a04egxihc00",
"sessionId": null,
"sequenceIndex": 2
}
]
}

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.