<
Nachrichten senden API

Wie kann ich Push-Benachrichtungen mit der Nachrichten API versenden?

Mittels HTTP Post (nicht GET) in der Programmiersprache deiner Anwendung, sende eine Anfrage an http://www.pushsafer.com/api oder über eine sichere Verbindung an https://www.pushsafer.com/api! Um die Push Benachrichtung an deine Bedürfnisse anzupassen, können folgende Werte übermittelt werden: Titel, Nachricht, Icon, Icon Farbe, Sound, Vibration, Bilder, Gerät oder Gerätegruppe, URL, URL Titel, Time to Live, Priorität, Erneut Senden, Verfallen, Antwort.

Hier ein paar Beispiele:

PHP (HTTP CONTEXT)
<?php
$url = 'https://www.pushsafer.com/api';
$data = array(
	't' => urldecode($title),
	'm' => urldecode($message),
	's' => $sound,
	'v' => $vibration,
	'i' => $icon,
	'c' => $iconcolor,
	'd' => $device,
	'u' => urldecode($url),
	'ut' => urldecode($urltitle),
	'p' => $picture,
	'k' => $private_key
);
$options = array(
	'http' => array(
		'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
		'method'  => 'POST',
		'content' => http_build_query($data)
	)
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
?>

PHP (CURL)
<?php
$ch = curl_init();
$data = array(
	't' => urldecode($title),
	'm' => urldecode($message),
	's' => $sound,
	'v' => $vibration,
	'i' => $icon,
	'c' => $iconcolor,
	'd' => $device,
	'u' => urldecode($url),
	'ut' => urldecode($urltitle),
	'p' => $picture,
	'k' => $private_key
);
$postString = http_build_query($data, '', '&');
curl_setopt($ch, CURLOPT_URL, 'https://www.pushsafer.com/api' );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$response = curl_exec($ch);
curl_close($ch);
?>

jQuery
$.ajax({
  type: "POST",
  url: 'https://www.pushsafer.com/api',
  data:  {
		t: escape(title),
		m: escape(message),
		s: sound,
		v: vibration,
		i: icon,
		c: iconcolor,
		d: device,
		u: escape(url),
		ut: escape(urltitle),
		p: picture,
		k: private_key
  }
});

JavaScript
var xhttp;
if (window.XMLHttpRequest) {
    xhttp = new XMLHttpRequest();
    } else {
    // code for IE6, IE5
    xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("POST", "https://www.pushsafer.com/api", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("t="+escape(title)+"&m="+escape(message)+"&s="+sound+"&v="+vibration+"&i="+icon+"&c="+iconcolor+"&d="+device+"&u="+escape(url)+"&ut="+escape(urltitle)+"&k="+private_key);

Node.JS

npm install pushsafer-notifications

var push = require( 'pushsafer-notifications' );
 
var p = new push( {
    k: 'Your20CharPrivateKey',             // your 20 chars long private key 
    debug: true
});
 
var msg = {
    m: 'This is a Node.js test message',   // message (required)
    t: "Node.js Test",                     // title (optional)
    s: '8',                                // sound (value 0-50) 
    v: '2',                                // vibration (empty or value 1-3) 
    i: '5',                                // icon (value 1-176)
    c: '#FF0000',                          // iconcolor (optional)
    u: 'https://www.pushsafer.com',        // url (optional)
    ut: 'Open Link',                       // url title (optional)
    d: '221'                               // the device or device group id 
};
 
// console.log( p ); 
 
p.send( msg, function( err, result ) {
    //console.log( 'ERROR:', err ); 
    console.log( 'RESULT', result );
    // process.exit(0); 
});

Unix Command Line
curl -s \
  --form-string "t=title" \
  --form-string "m=message" \
  --form-string "s=sound" \
  --form-string "v=vibration" \
  --form-string "i=icon" \
  --form-string "c=iconcolor" \
  --form-string "d=device" \
  --form-string "u=url" \
  --form-string "ut=urltitle" \
  --form-string "p=picture" \
  --form-string "k=private_key" \  
  https://www.pushsafer.com/api

Ruby
require "net/https"
url = URI.parse("https://www.pushsafer.com/api")
req = Net::HTTP::Post.new(url.path)
req.set_form_data({
  :t => title,
  :m => message,
  :s => sound,
  :v => vibration,
  :i => icon,
  :c => iconcolor,
  :d => device,
  :u => url,
  :ut => urltitle,
  :p => picture,
  :k => private_key,
})
res = Net::HTTP.new(url.host, url.port)
res.use_ssl = true
res.verify_mode = OpenSSL::SSL::VERIFY_PEER
res.start {|http| http.request(req) }

C#/.NET
var options= new NameValueCollection {
		{ "t", title },
		{ "m", message },
		{ "s", sound },
		{ "v", vibration },
		{ "i", icon },
		{ "c", iconcolor },
		{ "d", device },
		{ "u", url },
		{ "ut", urltitle },
		{ "p", picture },
		{ "k", private_key }
};
using (var client = new WebClient())
{
    client.UploadValues("https://www.pushsafer.com/api", options);
}

Perl
use LWP::UserAgent;
LWP::UserAgent->new()->post(
  "https://www.pushsafer.com/api", [
  "t" => title,
  "m" => message,
  "s" => sound,
  "v" => vibration,
  "i" => icon,
  "c" => iconcolor,
  "d" => device,
  "u" => url,
  "ut" => urltitle,
  "p" => picture,
  "k" => private_key,
]);

TCL - Tool Command Language
package require http
set url "https://www.pushsafer.com/api"
::http::geturl $url -query [::http::formatQuery k "privateKey" t "Title" m "Message" d "deviceID" i "Icon" s "Sound" v "Vibration" c "IconColor" u "URL" ut "URLTitle" l "Time2Live" p "Base64EncodedImageString"]

Python 3
from urllib.parse import urlencode
from urllib.request import Request, urlopen

url = 'https://www.pushsafer.com/api' # Set destination URL here
post_fields = {                       # Set POST fields here
	"t" : title,
	"m" : message,
	"s" : sound,
	"v" : vibration,
	"i" : icon,
	"c" : iconcolor,
	"d" : device,
	"u" : url,
	"ut" : urltitle,
	"k" : private_key
	}

request = Request(url, urlencode(post_fields).encode())
json = urlopen(request).read().decode()
print(json)
Lesen API
Mit der Lesen API kann man mittels Privaten Schlüssel und Geräte ID alle Nachrichten eines Gerätes (inkl. aller Parameter) abrufen. Der Aufruf kann mittels GET oder POST erfolgen.

Ein einfaches Beispiel:

https://www.pushsafer.com/api-m?k={private_key}&d={device}

Lesen API Antwort-Codes

HTTP/1.0 200 OK
JSON
{
"status": 1, "messages": { "21231": { "id": "21231", "title": "Pushsafer Test Push", "message": "This is only a test", "icon": "22", "iconcolor": "#FFCCCC", "sound": "12", "vibration": "3", "url": "https:\/\/www.pushsafer.com", "url_title": "Open Pushsafer", "image1": "", "image2": "", "image3": "", "time2live": "", "date_sent": "2018-08-21 16:00:23", "status_sent": "1", "priority": "2", "retry": "1", "retries": "10", "expire": "2018-08-21 18:00:23", "expired": "1", "reply": "1", "replied": "1", "answer": "This is a test answer" } } }

HTTP/1.0 250 invalid authentication
JSON
{
"status": 0, "error": "invalid authentication" }

Geräte API
Mit der Geräte API kann man mittels Privaten Schlüssel und Benutzer seine bei Pushsafer registrierten Geräte auslesen. Der Aufruf der Geräte API ist ähnlich der Nachrichten API aufgebaut. Der Aufruf kann mittels POST oder GET erfolgen.

Es müssen folgende Parameter übergeben werden:
k = Privater Schlüssel
u = Benutzername oder eMail Adresse

Ein einfaches Beispiel:

https://www.pushsafer.com/api-d?k={private_key}&u={user}

Geräte API Antwort-Code

HTTP/1.0 200 OK
JSON
{
"status":1, "devices":{ "a":"All Devices", "gs40":"Group: iOS", "gs44":"Group: Windows", "gs46":"Group: Android", "gs47":"Group: Browser", "53":"iPhone4", "78":"GT-P5110", "82":"Cindys iPhone6", "86":"iPad Air", "119":"iPhone6p", "143":"Windows Firefox", "267":"Lumia 550", "269":"PC Office WIN10", "318":"Windows Chrome", "418":"BV2000s", "484":"CUBOT GT72E", "1351":"HUAWEI MT7-L09", "1520":"Cindy's SATELLITE PRO" } }

HTTP/1.0 250 invalid authentication
JSON
{ "status":0, "error":"invalid authentication" }

Schlüssel API
Mit der Schlüssel API kann man mittels Privaten Schlüssel und Benutzer prüfen, ob der Private Schlüssel valide ist. Der Aufruf der Schlüssel API ist ähnlich der Nachrichten oder Geräte API aufgebaut. Der Aufruf kann mittels POST oder GET erfolgen.

Es müssen folgende Parameter übergeben werden:
k = Privater Schlüssel
u = Benutzername oder eMail Adresse

Ein einfaches Beispiel:

https://www.pushsafer.com/api-k?k={private_key}&u={user}

Schlüssel API Antwort-Codes

HTTP/1.0 200 OK
JSON
{ "status":1, "success":"valid key" }

HTTP/1.0 250 invalid authentication
JSON
{ "status":0, "error":"invalid authentication" }

Callback-URL

In den Profil-Einstellungen kann man eine Callback-URL angeben.Pushsafer Callback URL
Bei positiven Aktionen, wie z.B. dem Versenden von Push-Benachrichtungen oder dem Registrieren von neuen Geräten, werden die JSON Antwort-Codes an diese URL per POST mit dem Parameter json gesendet. Mit dieser Funktion hat man die Möglichkeit, im eigenen System Automatismen zu erstellen oder ein registriertes Gerät einem Account zuzuordnen.

Beispiel: https://www.pushsafer.com/call/me/back

$json = $_POST['json'];
if($json){
	$file = 'callback.txt';
	// open data
	$current = file_get_contents($file);
	// insert new line
	$current.= "\n".date("Y-m-d H:i:s", time()).' '.$json;
	// write data
	file_put_contents($file, $current);
}

Antwort-Code für das Versenden von Push-Benachrichtigungen

{
	"status":1,
	"success":"message transmitted",
	"available":1823,
	"message_ids":"1324312:118,1324313:324"
}

Antwort-Code für das Registrieren eines neuen Gerätes

{
	"action": "add-device",
	"id": "27899",
	"name": "iPhone XS",
	"guest": "1"
}

Antwort-Code für das Löschen eines Gerätes

{
	"action": "delete-device",
	"id": "27899"
}
Firewall

Werden Zugriffe durch eine Firewall blockiert, bitte folgender IP Adresse den Zugriff erlauben!

IPv4 = 212.83.36.91

IPv6 = 2a00:f48:cafe:a911::1

Parameter

Benutze Parameter, um deine Push-Nachricht anzupassen, drücke auf den orangen Parameter um eine detailiertere Beschreibung zu erhalten:

k = Privater oder Alias Schlüssel*

Beispiel: 3SAz1a2iTYsh19eXIMiO

d = Gerät

einzelne Geräte ID oder Gerätegruppen ID oder alle Geräte

d=a = an alle Geräte
d=gs23 = an eine Gerätegruppe
d=52 = an ein einzelnes Gerät

t = Titel

m = Nachricht*

s = Sound Leer=Gerätestandard oder eine Nummer 0-50

v = Vibration Leer=Gerätestandard oder eine Nummer 1-3

(nur iOS & Android)

i = Icon Standard = 1 oder eine Nummer 1-177

c = Icon Farbe Standard = Leer

oder ein Hexadezimaler Farbcode Beispiel: #FF0000

(nur Android >5.0, Windows 10 & alle Client APPs)

Farbe für LED Benachrichtigung
(nur Android, Gerät benötigt eine RGB LED)

u = URL/Link u="https://www.pushsafer.com"

ut = URL Title ut="Link öffnen"

Öffne andere Apps mit deiner Push-Benachrichtung mittles
URL Schemas

p = Bild Data URL mit Base64-kodierter Zeichenkette
p2 = Bild 2 Data URL mit Base64-kodierter Zeichenkette
p3 = Bild 3 Data URL mit Base64-kodierter Zeichenkette

data:image/gif;base64,R0l...BOw==
data:image/jpeg;base64,C4s...Cc1==
data:image/png;base64,G0G...h5r==

l = Time to Live Ganzzahl 0-43200: Zeit in Minuten,

nach der die Nachricht automatisch gelöscht wird.
0 oder leer = nicht automatisch löschen

pr = Priorität

-2 = niedrigste Priorität

-1 = niedrige Priorität

0 = normale Priorität

1 = hohe Priorität

2 = höchste Priorität

re = Retry / erneut senden

Ganzzahl 60-10800 (60er Schritte): Zeit in Sekunden, nach der die Nachricht erneut versendet werden soll.

ex = Expire / Verfallen

Ganzzahl 60-10800: Zeit in Sekunden, nach der das erneute Versenden der Nachrichten gestoppt werden soll.

a = Antwort

1 = auf diese Nachricht kann geantwortet werden.
0 = auf diese Nachricht kann nicht geantwortet werden.

* benötigte Parameter

max. Größe aller POST Parameter = 8192kb

API Antwort-Codes

Mit jedem Nachrichten-API-Aufruf wird eine Antwort mit HTTP-Header-Code und einen JSON String für Auswertungen zurückgeliefert

HTTP/1.0 200 OK
JSON
{ "status":1, "success":"message transmitted", "available":1823, "message_ids":"1324312:118,1324313:324" }


available verfügbare API Aufrufe

message_ids eindeutige Nachrichten IDs mit Komma getrennt
und dazugehöriger Geräte-ID mit Doppelpunkt getrennt

HTTP/1.0 250 invalid key
JSON
{ "status":0, "error":"invalid key" }

HTTP/1.0 255 invalid key or empty message
JSON
{ "status":0, "error":"invalid key or empty message" }

HTTP/1.0 260 empty message
JSON
{ "status":0, "error":"empty message" }

HTTP/1.0 270 invalid device
JSON
{ "status":0, "error":"invalid device" }

HTTP/1.0 275 invalid device group
JSON
{ "status":0, "error":"invalid device group" }

HTTP/1.0 280 not enough API calls
JSON
{ "status":0, "error":"not enough API calls" }

HTML Formatierung
Die Nachricht kann mittels BBCode formatiert werden. Die Formatierung kann nur in den Client Apps & Browser, aber nicht direkt in der Push-Nachricht dargestellt werden. Folgende BBCodes werden akzeptiert:

[b]Wort[/b] Wort fett
[i]Wort[/i] Wort kursiv
[u]Wort[/u] Wort unterstrichen
[s]Wort[/s] Wort durchgeschrichen
[left]Wort[/left] Text linksbündig
[center]Wort[/center] Text zentriert
[right]Wort[/right] Text rechtsbündig
[size=18]Wort[/size] Text in Schriftgröße 18 Pixel
optimale Schriftgrößen 8-48
[color=blue]Wort[/color] Wort blau
[color=#FF0000]Wort[/color] Wort rot
Es werden Hex Codes und die meisten Farbnamen unterstützt.
[url=http://www.domain.com]Link[/url] zeigt einen Link
Kombinierte Werte sind auch möglich:
[b][u][color=#980000]Wort[/color][/u][/b] = Wort
Zeilenumbruch: \n oder BBCode [br]

Ton
Werte in Klammern gelten für Windows 10 (UWP)

leer = Gerätestandard
0 = Lautlos
1 = Ahem (IM)
2 = Applaus (Mail)
3 = Pfeil (Reminder)
4 = Baby (SMS)
5 = Glocke (Alarm)
6 = Fahrradklingel (Alarm2)
7 = Boing (Alarm3)
8 = Buzzer (Alarm4)
9 = Kamera (Alarm5)
10 = Auto Hupe (Alarm6)
11 = Registrierkasse (Alarm7)
12 = Glockenspiel (Alarm8)
13 = Knarrende Tür (Alarm9)
14 = Kuckucksuhr (Alarm10)
15 = Verbindung trennen (Call)
16 = Hund (Call2)
17 = Türklingel (Call3)
18 = Fanfare (Call4)
19 = Pistole (Call5)
20 = Hupen (Call6)
21 = Maultrommel (Call7)
22 = Morsen (Call8)
23 = Elektrizität (Call9)
24 = Radio Tuner (Call10)
25 = Sirene
26 = Militär Trompeten
27 = Ufo
28 = Whah Whah Whah
29 = Mann sagt Goodbye
30 = Mann sagt Hello
31 = Mann sagt No
32 = Mann sagt Ok
33 = Mann sagt Ooohhhweee
34 = Mann sagt Warning
35 = Mann sagt Welcome
36 = Mann sagt Yeah
37 = Mann sagt Yes
38 = Beep kurz
39 = Weeeee kurz
40 = Cut in and out kurz
41 = Finger an Glas schnipsen kurz
42 = Wa Wa Waaaa kurz
43 = Laser kurz
44 = Wind Spiel kurz
45 = Echo kurz
46 = Zipper kurz
47 = HiHat kurz
48 = Beep 2 kurz
49 = Beep 3 kurz
50 = Beep 4 kurz
51 = The Alarm is armed
52 = The Alarm is disarmed
53 = The Backup is ready
54 = The Door is closed
55 = The Door is opend
56 = The Window is closed
57 = The Window is open
58 = The Light is off
59 = The Light is on
60 = The Doorbell rings
Icon
= 1 = 2 = 3 = 4 = 5 = 6 = 7 = 8 = 9 = 10 = 11 = 12 = 13 = 14 = 15 = 16 = 17 = 18 = 19 = 20 = 21 = 22 = 23 = 24 = 25 = 26 = 27 = 28 = 29 = 30 = 31 = 32 = 33 = 34 = 35 = 36 = 37 = 38 = 39 = 40 = 41 = 42 = 43 = 44 = 45 = 46 = 47 = 48 = 49 = 50 = 51 = 52 = 53 = 54 = 55 = 56 = 57 = 58 = 59 = 60 = 61 = 62 = 63 = 64 = 65 = 66 = 67 = 68 = 69 = 70 = 71 = 72 = 73 = 74 = 75 = 76 = 77 = 78 = 79 = 80 = 81 = 82 = 83 = 84 = 85 = 86 = 87 = 88 = 89 = 90 = 91 = 92 = 93 = 94 = 95 = 96 = 97 = 98 = 99 = 100 = 101 = 102 = 103 = 104 = 105 = 106 = 107 = 108 = 109 = 110 = 111 = 112 = 113 = 114 = 115 = 116 = 117 = 118 = 119 = 120 = 121 = 122 = 123 = 124 = 125 = 126 = 127 = 128 = 129 = 130 = 131 = 132 = 133 = 134 = 135 = 136 = 137 = 138 = 139 = 140 = 141 = 142 = 143 = 144 = 145 = 146 = 147 = 148 = 149 = 150 = 151 = 152 = 153 = 154 = 155 = 156 = 157 = 158 = 159 = 160 = 161 = 162 = 163 = 164 = 165 = 166 = 167 = 168 = 169 = 170 = 171 = 172 = 173 = 174 = 175 = 176 = 177

Copyright © Pushsafer.com, All rights reserved.