• Stars
    star
    382
  • Rank 112,241 (Top 3 %)
  • Language
    Go
  • License
    GNU Affero Genera...
  • Created over 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Send and receive SMS messages using your Android phone programmatically via a simple HTTP API

HTTP SMS

Build GitHub contributors GitHub license

HTTP SMS is a service that lets you use your android phone as an SMS Gateway to send and receive SMS messages. You make a request to the API which it triggers your android phone to send an SMS.

Quick Start Guide πŸ‘‰ https://docs.httpsms.com

header

Why?

I'm originally from Cameroon and I wanted an automated way to send and receive SMS messages using an API. Unfortunately many countries don't support the ability to buy virtual phone numbers, and I could not find a good ready-made solution that could help me send/receive SMS messages using a mobile phone using an intuitive http API.

Technology

Web

The web interface https://httpsms.com is built using Nuxt and Vuetify. It is hosted as a single page application on firebase. The source code is in the web directory

API

The API https://api.httpsms.com is built using Fiber, Go and CockroachDB for the database. It rus as a serverless application on Google Cloud Run. The API documentation can be found here https://api.httpsms.com/index.html

// Sending an SMS Message using Go
client := htpsms.New(htpsms.WithAPIKey(/* API Key from https://httpsms.com/settings */))

client.Messages.Send(context.Background(), &httpsms.MessageSendParams{
    Content: "This is a sample text message",
    From:    "+18005550199",
    To:      "+18005550100",
})

Android App

The Android App is a native application built using Kotlin with material design principles. This app must be installed on an android phone before you can start sending and receiving SMS messages.

Features

Webhook

If you want to build advanced integrations, we support webhooks. The httpSMS platform can forward SMS messages received on the android phone to your server using a callback URL which you provide.

Back Pressure

In-order not to abuse the SMS API on android, you can set a rate limit e.g 3 messages per minute. Such that even if you call the API to send messages to 100 people, It will only send the messages at a rate of 3 messages per minute.

Message Expiration

Sometimes it happens that the phone doesn't get the push notification in time and I can't send the SMS message. It is possible to set a timeout for which a message is valid and if a message becomes expired after the timeout elapses, you will be notified.

API Clients

Flows

Sending an SMS Message

sequenceDiagram
User->>+Http Sms API: Call /v1/messages/send API
Http Sms API-->>+Google Cloud Task: Schedule notification about new message
Http Sms API-->>-User: Respond with 202 (Accepted)
Google Cloud Task-->>+Http Sms API: [Async] Send notfication request
Http Sms API-->>-Android App: Send push notification about new message
Android App-->>Http Sms API: [Async] Fetch message
Android App-->>Android App: Send Message using Andoid SMS API
Android App-->>Http Sms API: [Async] Send result of sending SMS
Android App-->>Http Sms API: [Async] Send Delivery Report

License

This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 - see the LICENSE file for details

More Repositories

1

go-otelroundtripper

Go http.RoundTripper that emits open telemetry metrics. This helps you easily get metrics for all external APIs you interact with.
Go
80
star
2

lemonsqueezy-go

Go library for the Lemon Squeezy API
Go
51
star
3

dompdf-api

Laravel API micro-service which to converts HTML to PDF.
PHP
25
star
4

hepilo

Ultimate Shopping List App with Prices and Categories
Vue
24
star
5

gist-cleaner

This is a webapp to bulk delete github gists
JavaScript
23
star
6

lfu-cache

Strongly typed least frequently used (LFU) cache in Go with constant time complexity O(1) on all operations
Go
9
star
7

speech-to-text-php

Sample PHP/Laravel Application to convert Speech to Text using the IBM Watson API
PHP
7
star
8

superbutton

Configurable floating button for your website.
Go
6
star
9

mtnmomo-go

MTN Mobile Money API Client in Go
Go
6
star
10

httpsms-go

Go Client for the httpSMS API https://api.httpsms.com
Go
5
star
11

orangemoney-go

Unofficial SDK for the Orange Money API
Go
4
star
12

flutterwave-go

Unofficial Go client for the flutterwave API
Go
4
star
13

httpsms-node

Node client for the httpSMS API https://httpsms.com
TypeScript
4
star
14

smobilpay-go

Unofficial SDK for the smobilpay API
Go
3
star
15

httpsms-recipes

Code examples for httpsms.com
PHP
3
star
16

go-http-client

Template for building HTTP API clients in Go
Go
2
star
17

darksky-php

A PHP wrapper for the Dark Sky Weather API
PHP
2
star
18

sweet-captcha-php-sdk

Unofficial PHP SDK for https://www.sweetcaptcha.com
PHP
2
star
19

gravatar-url-generator

Easily generate the link to your gravatar image
Vue
1
star
20

coinpayments-go

Unofficial Go API for CoinPayments
Go
1
star