C# Samples
This sample loads last 1000 messages for a specified device using username and password to authenticate.
using System;
using System.Collections.Generic;
using System.Net;
// use NuGET to add Json.NET library
using Newtonsoft.Json;
namespace ApiDemo
{
class Program
{
private const string serverUri = "https://api.globalalerting.com";
private const string username = "user@domain.com";
private const string password = "mypassword";
private const string tenantCode = "1234";
private const string deviceId = "my-device";
static void Main(string[] args)
{
string resourceUrl = String.Format("/V2/{0}/devices/{1}/momessages", tenantCode, deviceId);
List<MoMessage> moMessages = Get<List<MoMessage>>(resourceUrl);
foreach (var moMessage in moMessages)
Console.WriteLine("{0} {1}", moMessage.SentFromDevice, moMessage.Message);
}
private static T Get<T>(string resourceUrl)
{
WebClient webClient = new WebClient();
// pass username and password
webClient.Credentials = new NetworkCredential(username, password);
webClient.BaseAddress = serverUri;
string json = webClient.DownloadString(resourceUrl);
T data = JsonConvert.DeserializeObject<T>(json);
return data;
}
#region Models
public class MoMessage
{
public EmergencyState EmergencyState { get; set; }
public string Message { get; set; }
public string MessageId { get; set; }
public string MessageType { get; set; }
public Position Position { get; set; }
public DateTime ReceivedAtServer { get; set; }
public string Recipients { get; set; }
public DateTime SentFromDevice { get; set; }
public int SequenceNumber { get; set; }
public Dictionary<string, string> Properties { get; set; }
public List<ContainingGeofence> ContainingGeofences { get; set; }
public string MimeType { get; set; }
public string Filename { get; set; }
public string ETag { get; set; }
}
public class Position
{
public double? Latitude { get; set; }
public double? Longitude { get; set; }
public DateTime? GpsTimestamp { get; set; }
public double? Speed { get; set; }
public double? Heading { get; set; }
public double? Altitude { get; set; }
public LocationSourceType LocationSource { get; set; }
public string Accuracy { get; set; }
}
public class ContainingGeofence
{
public string GeofenceId { get; set; }
public string GeofenceName { get; set; }
}
public enum LocationSourceType
{
Gps, Glonass, Doppler, Unknown, DGpsLt10m, GnssGt10m, AndroidLocationService,
iOSLocationService, Beacon, BDAS, Beidou, Galileo, UserProvided
}
public enum EmergencyState
{
None, Emergency, EmergencyCancel, NotSpecified
}
#endregion
}
}
This sample loads device information using API key to authenticate.
using System;
using System.Collections.Generic;
using System.Net;
// use NuGET to add Json.NET library
using Newtonsoft.Json;
namespace ApiDemo
{
class Program
{
private const string serverUri = "https://api.globalalerting.com";
private const string apiKey = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ==-";
private const string tenantCode = "1234";
private const string deviceId = "my-device";
static void Main(string[] args)
{
string resourceUrl = String.Format("/V2/{0}/devices/{1}", tenantCode, deviceId);
Device device = Get<Device>(resourceUrl);
Console.WriteLine("{0} {1}", device.FriendlyName, device.DeviceId);
}
private static T Get<T>(string resourceUrl)
{
WebClient webClient = new WebClient();
// pass API key
webClient.Headers.Add("X-GAPAPIKEY", apiKey);
webClient.BaseAddress = serverUri;
string json = webClient.DownloadString(resourceUrl);
T data = JsonConvert.DeserializeObject<T>(json);
return data;
}
#region Models
public class Device
{
public string TenantCode { get; set; }
public string DeviceId { get; set; }
public string DeviceType { get; set; }
public string FriendlyName { get; set; }
public string Description { get; set; }
public string Username { get; set; }
public string UserId { get; set; }
public string DeviceStatus { get; set; }
public ProvisioningStatus? ProvisioningStatus { get; set; }
public DateTime? DateAdded { get; set; }
public string GroupId { get; set; }
public bool? CheckInScheduleEnabled { get; set; }
public OverdueState CheckInScheduleOverdue { get; set; }
public bool EnableEmailDelivery { get; set; }
public bool? EnableSmsReplies { get; set; }
public bool IsMonitored { get; set; }
public int? MonitoringIntervalMinutes { get; set; }
public int? MonitoringBufferMinutes { get; set; }
public OverdueState MonitoringOverdue { get; set; }
public EmergencyState EmergencyState { get; set; }
public string PhoneNumber { get; set; }
public string ImageId { get; set; }
public double? LastLatitude { get; set; }
public double? LastLongitude { get; set; }
public DateTime? LastMessageTime { get; set; }
public DateTime? LastLocationTime { get; set; }
public Dictionary<string, string> Properties { get; set; }
public DateTime? Timestamp { get; set; }
public string ETag { get; set; }
public string Photo { get; set; }
public string CustomEmailAddress { get; set; }
public string SecondaryDeviceId { get; set; }
}
public enum ProvisioningStatus
{
Provisioned, NotProvisioned, Suspended
}
public enum OverdueState
{
NotOverdue, Warning, Overdue
}
public enum EmergencyState
{
None, Emergency, EmergencyCancel
}
#endregion
}
}
PHP Sample
This sample loads last 1000 messages for a specified device.
#!/usr/bin/php
<?php
$auth="user@domain.com:mypassword";
$device="my-device";
$tenant="1234";
$url = sprintf("https://api.globalalerting.com/V2/%s/devices/%s/momessages", $tenant, $device);
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD,$auth);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response= curl_exec($curl);
print $response;
?>
Python Samples
This sample loads list of devices using username and password to authenticate.
# compatible with Python 3.7+
import urllib.request
import base64
import json
username = 'user@domain.com'
password = 'mypassword'
server_uri = 'https://api.globalalerting.com'
tenant_code = '1234'
auth = base64.b64encode(bytes('{}:{}'.format(username, password), 'ascii'))
headers = {'Authorization': 'Basic {}'.format(auth.decode('utf-8')), 'Content-Type': 'application/json'}
# download Devices
resource_url = '/V2/{}/devices'.format(tenant_code)
request = urllib.request.Request(server_uri + resource_url, headers=headers)
response = urllib.request.urlopen(request)
devices = json.loads(response.read().decode('utf-8', errors='ignore'))
print(devices)
This sample loads last 1000 messages for a specified device using API key to authenticate.
# compatible with Python 3.7+
import urllib.request
import json
api_key = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ==-'
server_uri = 'https://api.globalalerting.com'
tenant_code = '1234'
device_id = 'my-device'
headers = {'X-GAPAPIKEY': api_key, 'Content-Type': 'application/json'}
# GET Devices
resource_url = '/V2/{}/devices'.format(tenant_code)
request = urllib.request.Request(server_uri + resource_url, headers=headers)
response = urllib.request.urlopen(request)
devices = json.loads(response.read().decode('utf-8', errors='ignore'))
print(devices)
# GET MoMessages
resource_url = '/V2/{}/devices/{}/momessages'.format(tenant_code, device_id)
request = urllib.request.Request(server_uri + resource_url, headers=headers)
response = urllib.request.urlopen(request)
mo_messages = json.loads(response.read().decode('utf-8', errors='ignore'))
print(mo_messages)