Input-API
Mittels unserer Input-API können Sie Datensätze direkt in Freinet eintragen.
Folgende Module werden hierbei derzeit unterstützt:
- Modul Einrichtung
- Modul Angebot
- Modul Freiwillige
Weitere Möglichkeiten
- API für Empfehlungen / Vermittlungen
(um Freiwillige und Angebote zu verbinden)
Sofern Sie Fragen zu einem Einsatz-Szenario haben, können Sie uns gerne kontaktieren.
Endpoints
Der Endpoint für das erstellen von Einrichtungen lautet
POST https://freinet-online.de/api/input/v3/einrichtung
Der Endpoint für das erstellen von Angeboten lautet
POST https://freinet-online.de/api/input/v3/angebot
Der Endpoint für das erstellen von Personen lautet
POST https://freinet-online.de/api/input/v3/personen
Der Endpoint für das erstellen von Vermittlungen lautet
POST https://freinet-online.de/api/input/v3/vermittlung
Responses
ResponsesAntworten der API erfolgen als JSON Objekt
|
|
| Success |
{
"STATUS": "OK",
"NEW_EINRICHTUNGID": "{einrichtung_id}" // Bei Einrichtungen
"NEW_ANGEBOTID": "{angebot_id}" // Bei Angeboten
"NEW_USERID": "{user_id}" // Bei Freiwilligen
"NEW_VERMITTLUNGID": "{vermittlung_id}" // Bei Vermittlungen Angebote/Freiwillige
}
|
| Error |
{
"error": {
"code": 417,
"message": "Expectation Failed: TargetAgid missing"
}
}
|
Beispiele
Einrichtung
Insert einer Einrichtung
/********************************
* $input_array eines UserInputs
* z.B.
*
* SetupInfos
* $input_array['init']['agencyID']='52'; // AgenturID
* $input_array['init']['accessKey']='xxxxxxxxx'; // AccessKey
* Infos zum User
* $input_array['einrichtung']['name']='Musteragentur';
* AdressDaten
* $input_array['einrichtung']['address'][1]['vorname']='Jan';
* $input_array['einrichtung']['address'][1]['nachname']='Rademacher';
* $input_array['einrichtung']['address'][1]['adress_strasse']='Am Musterweg';
* $input_array['einrichtung']['address'][1]['adress_plz']='26135';
* $input_array['einrichtung']['address'][1]['adress_ort']='Oldenburg';
* $input_array['einrichtung']['address'][1]['adress_tel_d']='123'; // Tel Dienstlich
* $input_array['einrichtung']['address'][1]['adress_tel_p']='123'; // Tel Privat
* $input_array['einrichtung']['address'][1]['adress_mobil']='123'; // Mobil
* $input_array['einrichtung']['address'][1]['adress_fax']='123'; // Fax
* Sonstige Infos
* $input_array['einrichtung']['unsupported'][]='Informationen, Informationen, für die es bei Freinet keine ›Entsprechung‹ gibt. (Die Informationen werden gesondert angezeigt)';
* Protokoll
* $input_array['protokoll'][1][title]='Mein Protokoll';
* $input_array['protokoll'][1]['content']='Mein Protokollinhalt';
* $input_array[''protokoll''][1][date]='2020-12-29';
*/
$input_array['init']['apiVersion']='1.0';
$input_array['init']['agencyID']='52';
$input_array['init']['accessKey']='xxxxxxxxx';
$input_array['init']['modul']='einrichtung'; // TargetModul freiwillige|einrichtung|angebot|kontakte
$input_array['init']['author']='Muster e.V.'; // Kontaktperson der API
$input_array['init']['author_mail']='mail@muster_e_V.de'; // E-Mail Adresse der API Kontaktperson
$input_array['entity']['anrede']='Herr'; // (mixed) Herr|Frau|1|2 (1=Herr, 2=Frau, 4=Divers)
$input_array['entity']['titel']='Dr.'; // Prof. Dr.
$input_array['entity']['vorname']='Markus';
$input_array['entity']['nachname']='Muster';
/*********************************
* Versand via cURL
*/
$url='https://freinet-online.de/api/input/v3/einrichtung';
$ch=curl_init($url);
# Setup request to send json via POST.
$payload=json_encode($input_array,JSON_PRETTY_PRINT);
curl_setopt($ch,CURLOPT_POSTFIELDS,$payload);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
# Send request.
$result=curl_exec($ch);
curl_close($ch);
Angebot
Insert einer Einrichtung mit Angebot
/********************************
* $input_array eines UserInputs
* z.B.
*
* SetupInfos
* $input_array['init']['agencyID']='52'; // AgenturID
* $input_array['init']['accessKey']='xxxxxxxxx'; // AccessKey
* Infos zur Einrichtung
* $input_array['einrichtung']['name']='Musteragentur';
* AdressDaten
* $input_array['einrichtung']['address'][1]['vorname']='Jan';
* $input_array['einrichtung']['address'][1]['nachname']='Rademacher';
* $input_array['einrichtung']['address'][1]['adress_strasse']='Am Musterweg';
* $input_array['einrichtung']['address'][1]['adress_plz']='26135';
* $input_array['einrichtung']['address'][1]['adress_ort']='Oldenburg';
* $input_array['einrichtung']['address'][1]['adress_tel_d']='123'; // Tel Dienstlich
* $input_array['einrichtung']['address'][1]['adress_tel_p']='123'; // Tel Privat
* $input_array['einrichtung']['address'][1]['adress_mobil']='123'; // Mobil
* $input_array['einrichtung']['address'][1]['adress_fax']='123'; // Fax
* Infos zum Angebot
* $input_array['angebot']['angebot_titel']='Vorlesen für Kinder im Vorschulalter';
* AdressDaten
* $input_array['angebot']['address'][1]['vorname']='Jan';
* $input_array['angebot']['address'][1]['nachname']='Rademacher';
* $input_array['angebot']['address'][1]['adress_strasse']='Am Musterweg';
* $input_array['angebot']['address'][1]['adress_plz']='26135';
* $input_array['angebot']['address'][1]['adress_ort']='Oldenburg';
* Sonstige Infos
* $input_array['angebot']['unsupported'][]='Informationen, Informationen, für die es bei Freinet keine ›Entsprechung‹ gibt. (Die Informationen werden gesondert angezeigt)';
* Protokoll
* $input_array['protokoll'][1]['title']='Mein Protokoll';
* $input_array['protokoll'][1]['content']='Mein Protokollinhalt';
* $input_array['protokoll'][1]['date']='2020-12-29';
*/
$input_array['init']['apiVersion']='1.0';
$input_array['init']['agencyID']='52';
$input_array['init']['accessKey']='xxxxxxxxx';
$input_array['init']['modul']='einrichtung'; // TargetModul freiwillige|einrichtung|angebot|kontakte
$input_array['init']['author']='Muster e.V.'; // Kontaktperson der API
$input_array['init']['author_mail']='mail@muster_e_V.de'; // E-Mail Adresse der API Kontaktperson
$input_array['entity']['anrede']='Herr'; // (mixed) Herr|Frau|1|2 (1=Herr, 2=Frau, 4=Divers)
$input_array['entity']['titel']='Dr.'; // Prof. Dr.
$input_array['entity']['vorname']='Markus';
$input_array['entity']['nachname']='Muster';
/*********************************
* Versand via cURL
*/
$url='https://freinet-online.de/api/input/v3/angebot';
$ch=curl_init($url);
# Setup request to send json via POST.
$payload=json_encode($input_array,JSON_PRETTY_PRINT);
curl_setopt($ch,CURLOPT_POSTFIELDS,$payload);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
# Send request.
$result=curl_exec($ch);
curl_close($ch);
Freiwillige
Insert eines Freiwilligen
/********************************
* $input_array eines UserInputs
* z.B.
*
* SetupInfos
* $input_array['init']['agencyID']='52'; // AgenturID
* $input_array['init']['accessKey']='xxxxxxxxx'; // AccessKey
* Infos zum User
* $input_array['entity']['vorname']='Jan';
* $input_array['entity']['nachname']='Rademacher';
* AdressDaten
* $input_array['entity']['address'][1]['adress_strasse']='Am Musterweg';
* $input_array['entity']['address'][1]['adress_plz']='26135';
* $input_array['entity']['address'][1]['adress_ort']='Oldenburg';
* $input_array['entity']['address'][1]['adress_tel_d']='123'; // Tel Dienstlich
* $input_array['entity']['address'][1]['adress_tel_p']='123'; // Tel Privat
* $input_array['entity']['address'][1]['adress_mobil']='123'; // Mobil
* $input_array['entity']['address'][1]['adress_fax']='123'; // Fax
* Sonstige Infos
* $input_array['entity']['unsupported'][]='Informationen, Informationen, für die es bei Freinet keine ›Entsprechung‹ gibt. (Die Informationen werden gesondert angezeigt)';
* Protokoll
* $input_array['protokoll'][1]['title']='Mein Protokoll';
* $input_array['protokoll'][1]['content']='Mein Protokollinhalt';
* $input_array['protokoll'][1]['date']='2020-12-29';
*/
$input_array['init']['apiVersion']='1.0';
$input_array['init']['agencyID']='52';
$input_array['init']['accessKey']='xxxxxxxxx';
$input_array['init']['modul']='personen'; // TargetModul freiwillige|einrichtung|angebot|kontakte
$input_array['init']['author']='Muster e.V.'; // Kontaktperson der API
$input_array['init']['author_mail']='mail@muster_e_V.de'; // E-Mail Adresse der API Kontaktperson
$input_array['entity']['anrede']='Herr'; // (mixed) Herr|Frau|1|2 (1=Herr, 2=Frau, 4=Divers)
$input_array['entity']['titel']='Dr.'; // Prof. Dr.
$input_array['entity']['vorname']='Rudi';
$input_array['entity']['nachname']='Dutschke';
/*********************************
* Versand via cURL
*/
$url='https://freinet-online.de/api/input/v3/personen';
$ch=curl_init($url);
# Setup request to send json via POST.
$payload=json_encode($input_array,JSON_PRETTY_PRINT);
curl_setopt($ch,CURLOPT_POSTFIELDS,$payload);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
# Send request.
$result=curl_exec($ch);
curl_close($ch);
Vermittlung
Insert einer Empfehlung/Vermittlung von ›Freiwilligen‹ zu ›Angeboten‹
/********************************
* $input_array einer Empfehlung/Vermittlung
* z.B.
*
* Teil 1) SetupInfos
* $input_array['init']['agencyID']='52'; // AgenturID
* $input_array['init']['accessKey']='gcBc66'; // AccessKey
*
* Teil 2) Infos zum Angebot
* $input_array['angebot']['angebot_id']='';
*
* Teil 3) Infos zum User (dem "Freiwilligen")
* $input_array['user']['user_id']='';
*
* Teil 4) Informationen zur Vermittlungen
* $input_array['einrichtung']['unsupported'][]='Informationen, Informationen, für die es bei Freinet keine ›Entsprechung‹ gibt. (Die Informationen werden gesondert angezeigt)';
*
* Teil 5) Sonstige Infos (optional)
* $input_array['angebot'][unsupported][]='Informationen, Informationen, für die es bei Freinet keine ›Entsprechung‹ gibt. (Die Informationen werden gesondert angezeigt)';
*
* Teil 8) Projekte (optional)
* $input_array['add_to_project'][1]='Name des Projektes'; // Der Datensatz "Angebot" soll zu einem Projekt hinzugefügt werden.
*
* Teil 9) Protokoll (optional)
* $input_array['protokoll'][1]['title']='Mein Protokoll';
* $input_array['protokoll'][1]['content']='Mein Protokollinhalt';
* $input_array['protokoll'][1]['date']='2020-12-29';
*/
/*
* Teil 1) Einstellungen zur Authorisierung etc.
*/
$input_array['init']['apiVersion']='1.0';
$input_array['init']['agencyID']='52';
$input_array['init']['accessKey']='xxxxxxxxx';
$input_array['init']['modul']='vermittlung'; // TargetModul freiwillige|einrichtung|angebot|kontakte
$input_array['init']['author']='Muster e.V.'; // Kontaktperson der API
$input_array['init']['author_mail']='mail@musterverein.de'; // TargetModul freiwillige|einrichtung|angebot|kontakte
$input_array['init']['referer_name']='Muster e.V.'; // Sie können hier den Namen der Sendenden Webseite eintragen
$input_array['init']['referer_email']='mail@musterverein.de'; // ... und die zugehörige E-Mail
$input_array['init']['referer_homepage']='http://www.musterverein.de'; // ... und die zugehörige Webadresse
$input_array['init']['testing']=false; // wenn true, dann können Sie Ihr Skript testen, ohne das Daten eingetragen werden
// etwaige Fehlermeldungen, Hinweise werden ausgegeben.
// Verhalten bei Dubletten
$input_array['init']['halt_on_vermittlung_duplicate']=false; // wenn 'true', wird der Eintrag abgebrochen, wenn ein Angebot und User bereits vermittelt sind.
// Benachrichtigung einer Agenturmitarbeiter_in
$input_array['init']['notify_this_email_on_submission']='rademacher@freinet-online.de'; // Wer soll benachrichtigt werden, wenn ein neuer Datensatz eingetragen wird
// Leer lassen, wenn niemand benachrichtigt werden soll
$input_array['init']['name_of_receiver']='Hallo Jan,'; // Anrede für Nachrichteninhalt
// Selbstregistrierung
// "Hat sich der User persönlich über ein (Online-)Formular eingetragen?"
$input_array['init']['self_registered']=true; // setzen Sie 'true', wenn der User sich persönlich z.B. über ein (Online-)Formular eingetragen hat.
/*
* Teil 2) Grunddaten
* ID des Angebots etc.
*/
$input_array['angebot']['angebot_id']='172166';
/*
* Teil 3) Grunddaten
* ID des Users etc.
*/
$input_array['user']['user_id']='287158'; //
/*
* Teil 4) Informationen zur Vermittlungen
*/
// Der Status der Vermittlung
// 0 = Empfehlung (Der User bekundet "Interesse" am Angebot)
// 10 = Vermittlung (Der User bestätigt die Teilnahme / "sagt fest zu" / wird dieses Angebot sicher wahrnehmen
$input_array['vermittlung']['vermittlungs_status']='10'; // int
// Sofern bereits klar ist, in welchem Zeitrahmen der USER aktiv sein wird, können Start- und/oder End-Datum gesetzt werden
$input_array['vermittlung']['datum_start']='2021-01-01'; // Unix Timestamp || IsoDate
$input_array['vermittlung']['datum_ende']='2021-01-05'; // Unix Timestamp || IsoDate
// Anzahl Begleit-Personen
// "Wieviele Personen werden mitgebracht" (also User PLUS weitere Personen )
$input_array['vermittlung']['anzahl_begleitpersonen']='0'; // int
// Ist diese Vermittlung Teil des Programms FSSJ
$input_array['vermittlung']['is_FSSJ']='1'; // int 0=Nein, 1=Ja
// Datumsangaben
// Wenn keine Datumsangaben übergeben werden, nimmt Freinet den aktuellen UnixTimestamp
$input_array['vermittlung']['erstellt']=date('Y-m-d H:i:s', time()); // "Erstell/Registrierungsdatum" (ISODate or Unixtimestamp)
$input_array['vermittlung']['dateline']='1451307448'; // "zuletzt bearbeitet" (ISODate or Unixtimestamp)
// Kommentar
$input_array['vermittlung']['kommentar']='Mein Kommentar zu dieser Vermittlung'; // varchar, max 500
/*
* Teil 3) Nicht unterstützte Felder
* Sofern Sie Felder importieren möchten, die Freinet "eigentlich" nicht unterstützt,
* können Sie diese in folgendem Array speichern
* Freinet legt diese Infos als json-Objekt in einer ImportSpalte an, die angezeigt, durchsucht, aber nicht verarbeitet werden kann.
*/
$input_array['vermittlung']['unsupported']['Frage']='Antwort';
$input_array['vermittlung']['unsupported']['foo']='bar';
$input_array['vermittlung']['unsupported']['Sonderzeichen']='frägt man sich " ab und\'s an. ';
/*********************************
* Versand via cURL
*/
$url='https://freinet-online.de/api/input/v3/vermittlung';
$ch=curl_init($url);
# Setup request to send json via POST.
$payload=json_encode($input_array,JSON_PRETTY_PRINT);
curl_setopt($ch,CURLOPT_POSTFIELDS,$payload);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
# Send request.
$result=curl_exec($ch);
curl_close($ch);
