Spending days on implementing some appearantly simple API is not very interesting and this usually results in extra coffee break for the developer instead of adding one more "if-then-else" to the code.
Messente for example has multiple Helper Libraries for most popular programming languages that do the heavy-lifting for you to avoid some common mistakes but you should not overlook most common practices.
1. Check the Response Code and Act Accordingly
Usually developers check if the SMS was successfully sent to the service provider and if there is an error, the app tries to send the text again or just skips it.
When an error code is returned there should be at least two different processes implemented:
- When there is a temporary error, try again (but not indefinetly)
- In case of a fatal error do not try to send again
In either case, server administrator should be notified that an error occurred and someone should look into it, which lead us to the next point.
2. No Notification System in Case of an Error
When error code is returned for the message sending request, there could be dosens of reasons why it failed.
In every case, server administrator should be somehow notified that something unexpected happened with the SMS messaging service.
Having internal notification system will help you avoid most common causes like for example when the account runs out of credits.
3. Your IP Address has Changed
Messente has implemented IP-based filters for API calls to block requests from unwanted servers.
When possible, get your server a static IP address. You can also add a list multiple IP addresses in the API settings to allow requests to be made from multiple servers.
4. Incorrect Encoding of the Message Body
The most commonly used character encoding in the web is UTF-8, that supports all the characters from all alphabeths. This is also what Messente assumes you are using.
When testing out the API and everything seems to be working with simple “abc”, you might run into trouble when suddenly you need to send text with “ñ” character in it.
If you are using some other encoding like Western (ISO-8859-1) or Cryllic (KOI8-R), first convert the text to UTF-8.
Or when that is not possible, just let Messente know what encoding you will be using and it will take care of it.
5. Backup Route is Not Implemented
You are still able to send SMS messages even when the main server is having hickups by simply switching to a backup server.
It happens rarely that Messente’s main server is down, but when nature is having a bad day, nobody is safe.