Skip to content

Commit bb22fe3

Browse files
authored
Merge pull request #41 from mariuspot/master
Add WhatsApp Sandbox support to Conversations API
2 parents 41a7285 + 04e3036 commit bb22fe3

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ Your balance:
7373

7474
Please see the other examples for a complete overview of all the available API calls.
7575

76+
Conversations WhatsApp Sandbox
77+
-------------
78+
To use the whatsapp sandbox you need to add `messagebird.Feature.ENABLE_CONVERSATIONS_API_WHATSAPP_SANDBOX` to the list of features you want enabled. Don't forget to replace `YOUR_ACCESS_KEY` with your actual access key.
79+
80+
```python
81+
client = messagebird.Client('1ekjMs368KTRlP0z6zfG9P70z', features=[messagebird.Feature.ENABLE_CONVERSATIONS_API_WHATSAPP_SANDBOX])
82+
```
83+
7684
Documentation
7785
-------------
7886
Complete documentation, instructions, and examples are available at:

messagebird/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
from messagebird.client import Client, ErrorException
1+
from messagebird.client import Client, ErrorException, Feature
22
from messagebird.signed_request import SignedRequest

messagebird/client.py

+16-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sys
22
import json
33
import io
4+
import enum
45

56
from messagebird.balance import Balance
67
from messagebird.call import Call
@@ -19,13 +20,18 @@
1920
from messagebird.conversation_webhook import ConversationWebhook, ConversationWebhookList
2021
from messagebird.voice_recording import VoiceRecordingsList, VoiceRecording
2122

23+
2224
ENDPOINT = 'https://rest.messagebird.com'
2325
CLIENT_VERSION = '1.4.1'
2426
PYTHON_VERSION = '%d.%d.%d' % (sys.version_info[0], sys.version_info[1], sys.version_info[2])
2527
USER_AGENT = 'MessageBird/ApiClient/%s Python/%s' % (CLIENT_VERSION, PYTHON_VERSION)
2628
REST_TYPE = 'rest'
2729

2830
CONVERSATION_API_ROOT = 'https://conversations.messagebird.com/v1/'
31+
CONVERSATION_API_WHATSAPP_SANDBOX_ROOT = 'https://whatsapp-sandbox.messagebird.com/v1/'
32+
33+
34+
2935
CONVERSATION_PATH = 'conversations'
3036
CONVERSATION_MESSAGES_PATH = 'messages'
3137
CONVERSATION_WEB_HOOKS_PATH = 'webhooks'
@@ -44,23 +50,28 @@ def __init__(self, errors):
4450
message = ' '.join([str(e) for e in self.errors])
4551
super(ErrorException, self).__init__(message)
4652

53+
class Feature(enum.Enum):
54+
ENABLE_CONVERSATIONS_API_WHATSAPP_SANDBOX = 1
4755

4856
class Client(object):
49-
def __init__(self, access_key, http_client=None):
57+
58+
def __init__(self, access_key, http_client=None, features=[]):
5059
self.access_key = access_key
5160
self.http_client = http_client
61+
62+
self.conversation_api_root = CONVERSATION_API_WHATSAPP_SANDBOX_ROOT if Feature.ENABLE_CONVERSATIONS_API_WHATSAPP_SANDBOX in features else CONVERSATION_API_ROOT
5263

5364
def _get_http_client(self, type=REST_TYPE):
5465
if self.http_client:
5566
return self.http_client
5667

57-
if type == REST_TYPE:
58-
return HttpClient(ENDPOINT, self.access_key, USER_AGENT)
59-
68+
if type == CONVERSATION_TYPE:
69+
return HttpClient(self.conversation_api_root, self.access_key, USER_AGENT)
70+
6071
if type == VOICE_TYPE:
6172
return HttpClient(VOICE_API_ROOT, self.access_key, USER_AGENT)
6273

63-
return HttpClient(CONVERSATION_API_ROOT, self.access_key, USER_AGENT)
74+
return HttpClient(ENDPOINT, self.access_key, USER_AGENT)
6475

6576
def request(self, path, method='GET', params=None, type=REST_TYPE):
6677
"""Builds a request, gets a response and decodes it."""

0 commit comments

Comments
 (0)