2016-12-07 2 views
1

Мы создали бета-платформу GIS (PostgreSQL, Django, Leaflet), которая также позволяет отправлять SMS-сообщения на номер Twilio, которые затем просматриваются в приложении и затем аннотируются администраторами отчетов.Использование Twilio для Восточной Африки - Кения, Танзания, Малави

Целью этих отчетов, полученных от толпы, является расширение прав и возможностей местных общин в сельской Восточной Африке с голосом, чтобы поделиться инцидентами, связанными с загрязнением воды и санитарии. Мы будем демонстрировать платформу веб-ГИС для более широкого международного сообщества (которые собрались вместе в Восточной Африке для решения этой проблемы, известной как «программа maji»).

Чтобы сократить это, мы используем Twilio для получения SMS-сообщений, и в настоящее время у вас есть только номер мобильного телефона Великобритании. Для проведения полевого испытания очень важно, чтобы мы могли предоставлять гражданам возможность сообщать и отправлять SMS-сообщения на более мобильный номер, а именно в Кению и Танзанию, с Малави в ближайшее время.

Недавно увидев, что Twilio добавил поддержку Кении, мы смотрим, как можно рассмотреть Танзанию и Малави. Это случай, когда мы ожидаем, что Twilio развернет поддержку в этих странах (уже отправил их на этот вопрос) или есть способ загрузить эту ситуацию?

Единственное требование, которое действительно имеет значение, состоит в том, что граждане могут размещать локальный мобильный телефон, который, в свою очередь, вводится в наше приложение django.

Я бы очень ценю ваш коллективный вклад ... будь то метод бутстрапа вокруг текущей проблемы Twilio, или же альтернативные способы решения местных потребностей Танзании и Малави.

ответ

2

Поскольку вы не можете получить локальный номер из Twilio, вы можете использовать другое местное решение для SMS: SMSLeopard или Uwazi. Uwazi имеет API, но я не взял его для тестового диска, а SMSleopard в настоящее время работает только с электронной таблицей. Вы можете собирать тексты в электронную таблицу, а затем разрабатывать собственное решение для отправки данных в базу данных или в Twilio. Лучшее решение для вашего дела я считаю AfricasTalking. Они охватывают Кения, Танзания, Уганда, Руанда, Малави и Нигерии

Update Twilio уже предоставлен новые местные номера по состоянию на июнь 2017 года

0

EDIT: Джанго-два-фактора аутентификации здесь для целей иллюстрации, он взаимодействует с шлюзом Twilio и использует пакет Twilio, поэтому я считаю, что это хороший пример для внедрения систем с несколькими шлюзами SMS.

Недавно я написал решение для нескольких SMS-шлюзов, которое поддерживает различные бэкэнды в стиле django-two-factor-auth SMS GW. В первую очередь мы используем его для отправки токенов аутентификации, но принцип тот же; Вероятно, вы хотите отправлять сообщения через несколько разных провайдеров SMS.

Вы, вероятно, следует искать в стиле, введенном там и обеспечить

  • SMS API, которые могут быть вызваны через в единообразной форме для отправки сообщений
  • SMS возвратные адреса для приема SMS-сообщений, которые так же предоставляют разные конечных точек для разных поставщиков, но интерфейс аналогичным образом.

Это будет означать, что вы бы некоторый шлюз, похожий на Twilio gateway введенном в Джанго-двухфакторной-AUTH с выделенными URL-адресами возврата и другим шлюзом и различными обратными адресами для другого провайдера:

class SMSLeopardGateway(object): 
    """ 
    A Gateway for sending and receiving SMS messages. 
    Sending just sends a HTTP message, return provides 
    a callback URL that interfaces to the receive_sms method. 
    """ 

    def send_sms(self, device, message): 
     # handle sending messages through an uniform API 

    @staticmethod 
    def receive_sms(request, *args, **kwargs): 
     # Django request interface for receiving messages 

urlpatterns = [ 
    url(^'/sms/receive/leopard', SMSLeopardGateway.receive_sms), 
] 

Таким образом, вы можете построить скудную поддержку для нескольких разных шлюзов и просто узнать, где находятся ваши номера и реагировать на это в вашем коде; вы могли бы предоставить только один URL-адрес обратного вызова SMS и просто подключить его к различным бэкэндам.

Шлюз Twilio и исходный код django-two-factor-auth не так уж сложно прочитать, и вы можете найти там много вдохновения.

Смежные вопросы