For your use we have also included a C# class for our API.
For use of this class, please see some examples below.
/*
* Please Note: This example does not do
* any error or exception checking
*
*/
PanaceaMobile.PanaceaApi sms = new PanaceaMobile.PanaceaApi("PUTYOURUSERNAMEHERE", "PUTYOURPASSWORDHERE");
/// Messages & Status
// Please ensure you enter valid cellphone numbers for message_send() function
// Start Example 1
Hashtable userBalanceResponse,
messageSendResponse,
messageStatusResponse;
userBalanceResponse = (Hashtable)sms.user_get_balance();
double balance = Convert.ToDouble(userBalanceResponse["details"]);
System.Console.WriteLine("Balance: " + balance.ToString());
messageSendResponse = (Hashtable)sms.message_send("1234567890", "Messages test", "55555555555");
messageStatusResponse = (Hashtable)sms.message_status((String)messageSendResponse["details"]);
System.Console.WriteLine(Procurios.Public.JSON.JsonEncode(messageSendResponse));
System.Console.WriteLine(Procurios.Public.JSON.JsonEncode(messageStatusResponse));
// End Example 1 */
/// GROUPS
// Start Example 2
Hashtable groupAddResponseOne,
groupAddResponseTwo,
groupListResponse,
groupDeleteResponse;
// Create 2 Groups
groupAddResponseOne = (Hashtable)sms.address_book_group_add("My Test Group One");
System.Console.WriteLine("The new group id: " + groupAddResponseOne["details"]);
groupAddResponseTwo = (Hashtable)sms.address_book_group_add("My Test Group Two");
System.Console.WriteLine("The new group id: " + groupAddResponseTwo["details"]);
int groupOne = Convert.ToInt32(groupAddResponseOne["details"]);
int groupTwo = Convert.ToInt32(groupAddResponseTwo["details"]);
// List the groups
groupListResponse = (Hashtable)sms.address_book_groups_get_list();
foreach (Hashtable listItem in (ArrayList)groupListResponse["details"])
{
System.Console.WriteLine("ID: " + listItem["id"] + " - Name: " + listItem["name"]);
}
// Delete the first of the two groups
groupDeleteResponse = (Hashtable)sms.address_book_group_delete(groupOne);
System.Console.WriteLine("Delete group: " + groupOne.ToString() + ", Status: " + groupDeleteResponse["status"] + ", Message: " + groupDeleteResponse["message"]);
/// CONTACTS
Hashtable contactAddResponseOne,
contactAddResponseTwo,
contactListResponse,
contactUpdateResponse,
contactDeleteResponse;
// Add two contacts to GROUP TWO
contactAddResponseOne = (Hashtable)sms.address_book_contact_add(groupTwo, "1234567890", "Graeme", "Smith");
System.Console.WriteLine("Added new contact. ID: " + contactAddResponseOne["details"]);
contactAddResponseTwo = (Hashtable)sms.address_book_contact_add(groupTwo, "0987654321", "Mark", "Boucher");
System.Console.WriteLine("Added new contact. ID: " + contactAddResponseTwo["details"]);
int contactOne = Convert.ToInt32(contactAddResponseOne["details"]);
int contactTwo = Convert.ToInt32(contactAddResponseTwo["details"]);
// List the contacts from GROUP TWO
contactListResponse = (Hashtable)sms.address_book_contacts_get_list(groupTwo);
foreach (Hashtable listItem in (ArrayList)contactListResponse["details"])
{
IDictionaryEnumerator de = listItem.GetEnumerator();
while (de.MoveNext())
{
System.Console.WriteLine(de.Key.ToString() + " - " + de.Value.ToString());
}
//System.Console.WriteLine("ID: " + listItem["id"] + " - Phone Number: " + listItem["phone_number"] + " - First Name: " + listItem["first_name"] + " - Last Name: " + listItem["last_name"]);
}
contactUpdateResponse = (Hashtable)sms.address_book_contact_update(contactOne, "1234567890", "Biff", "Smith");
// Delete the two contacts
contactDeleteResponse = (Hashtable)sms.address_book_contact_delete(contactOne);
System.Console.WriteLine("Delete contact: " + contactOne.ToString() + ", Status: " + contactDeleteResponse["status"] + ", Message: " + contactDeleteResponse["message"]);
contactDeleteResponse = (Hashtable)sms.address_book_contact_delete(contactTwo);
System.Console.WriteLine("Delete contact: " + contactTwo.ToString() + ", Status: " + contactDeleteResponse["status"] + ", Message: " + contactDeleteResponse["message"]);
// Delete the second group
groupDeleteResponse = (Hashtable)sms.address_book_group_delete(groupTwo);
System.Console.WriteLine("Delete group: " + groupTwo.ToString() + "Status: " + groupDeleteResponse["status"] + ", Message: " + groupDeleteResponse["message"]);
End Example 2 */
/// QUEUED ACTIONS
// Please ensure you enter valid cellphone numbers for message_send() function
// Start Example 3
Hashtable queueResponses;
sms.setPerformActionsImmediately(false);
sms.message_send("1234567890", "Queued 1", "5555555555");
sms.message_send("09876543221", "Queued 2", "5555555555");
queueResponses = sms.execute_multiple();
sms.setPerformActionsImmediately(true);
System.Console.WriteLine(Procurios.Public.JSON.JsonEncode(queueResponses));
// End Example 3 */
/// Batches
// Please ensure you enter valid cellphone numbers for in the csv data
// Start Example 4
Hashtable batchCreateResponse,
batchStartResponse,
batchCheckResponse;
// Build CSV file our input via some other method
StringBuilder csv = new StringBuilder();
csv.AppendLine("to,from,message");
csv.AppendLine("1234567890,5555555555,\"send this message\"");
csv.AppendLine("0987654321,5555555555,\"send this different batch message\");
String data = csv.ToString().Trim();
batchCreateResponse = (Hashtable)sms.batch_create(data, "Batch One Test");
System.Console.WriteLine(Procurios.Public.JSON.JsonEncode(batchCreateResponse));
int batch_id = Convert.ToInt32(batchCreateResponse["details"]);
batchStartResponse = (Hashtable)sms.batch_start(batch_id);
System.Console.WriteLine(Procurios.Public.JSON.JsonEncode(batchStartResponse));
batchCheckResponse = (Hashtable)sms.batch_check_status(batch_id);
System.Console.WriteLine(Procurios.Public.JSON.JsonEncode(batchCheckResponse));
// End Example 4 */
This class is based on the HTTP API.