Um die Teilnehmerdaten und Ergebnisse abzufragen, bietet die easyfeedback API V2 drei unterschiedliche Möglichkeiten:
- members: alle Metadaten zu einem oder sämtlichen Teilnehmern
- dataexport: alle Ergebnisse eines Teilnehmers aus einer Umfrage
- results: alle Ergebnisse aus einer oder sämtlichen Umfragen
Members: Metadaten eines Teilnehmers
Diese Methode bietet Zugriff auf die Teilnehmer einer Umfrage und beinhaltet die Metadaten zu jedem einzelnen Teilnehmer.
Parameter: pkey & pval
Die Parameter „pkey“ und „pval“ dienen dazu, das Suchergebnis auf bestimmte URL-Parameter einzugrenzen, die an die Umfrage-URL angehängt wurden.
Paramter: newer
Das Setzen des Parameters „newer“ hat folgende Auswirkungen:
- Mit „memberid“ werden alle Datensätze geliefert, die neuer als die angegebene
„memberid“ sind. - Ohne „memberid“ werden alle Datensätze geliefert, die seit der letzten Abfrage hinzugekommen sind.
- Wird keine „memberid“ gesetzt, aber status = 1 (beendet), dann werden alle Datensätze seit der letzten Abfrage geliefert, deren Endzeit größer als der Zeitpunkt der letzte Abfrage war.
- Wird keine „memberid“ gesetzt, aber status != 1 (beendet), dann werden alle Datensätze seit der letzten Abfrage geliefert, deren Startzeit größer als der Zeitpunkt der letzte Abfrage war.
Parameter: updatedts
Das Setzen des Parameters „updatedts“ mit einem Unixtimestamp liefert alle Datensätze, die seit dem angegebenen Datum aktualisiert wurden. Diese Abfrage eignet sich sehr gut dazu, um nur Datensätze zu ziehen, die aktualisiert wurden, bzw. neu hinzugekommen sind. Zudem können im Fehlerfall die Ergebnisse seit einem bestimmten Datum erneut aufgerufen werden.
Zeitangaben:
Zeiten sind als Datum im Atom-Format angegeben. „StartDate“ ist der Zeitpunkt des Aufrufs der Umfrage, „Votetime“ die Zeit, die insgesamt zwischen den Seitenaufrufen vergangen ist, „EndDate“ der Zeitpunkt, zu dem die Umfrage zuletzt beendet wurde. Bitte beachte Sie, dass ein Zeitraum von mehr als 15 Minuten zwischen zwei Seitenaufrufen nicht mehr zu der Gesamtzeit (Votetime) hinzugerechnet wird, da bei größeren Pausen während der Teilnahme die Gesamtzeit grob verfälscht werden würde.
URL |
/api/v2/members |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Methode |
GET, PUT |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET Parameter |
surveyid, languageid, statusid, participantlistid, participantuserid, refererid, personalid, deviceid, newer, pkey, pval, updatedts, page, limit |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUT Parameter |
Die memberId des anzupassenden Datensatz kann an den API-Aufruf angehängt werden (/api/v2/members/[memberid] ). Wird auch im Payload eine MemberId mitgegeben, so wird die MemberId in der Url ignoriert. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Input type |
JSON im Body |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rückgabe |
JSON |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rückgabewerte |
|
Beispielanfrage:
Anfrage: https://app.easy-feedback.com/api/v2/members/4771
Payload:
[
{
"Personalid": "ABD3438332333231"
}
]
Ergebnis:
Siehe Ergebnis GET
Beispiel: Alle Teilnehmer einer Umfrage
<?php
// Alle Teilnehmer einer Umfrage
// getAllMembers.php
// v1.0.0
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
$apiUrl = 'https://app.easy-feedback.com/api/v2/members?surveyid=' . $surveyid;
$ch = curl_init($apiUrl);
// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response = curl_exec($ch);
// Das Ergebnis als JSON anzeigen
if ($response === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
$jsonData = json_decode($response, true);
if ($jsonData === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort.';
} else {
echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT) . "</pre>";
}
}
// cURL-Verbindung schließen
curl_close($ch);
?>
Dataexport: alle Ergebnisse eines Teilnehmers
Diese Methode stellt die Daten eines Teilnehmers in aufbereiteter Form zur Verfügung. Die Antwort beinhaltet sowohl Frage- und Antwort-Texte der beantworteten Fragen, als auch die vom Teilnehmer gegebenen Antworten. Sowohl Ergebnisse als auch Antworten werden als Array zurückgegeben.
URL |
/api/v2/members/dataexport/[memberid] |
Methode |
GET |
Parameter |
Memberid |
Rückgabe |
JSON |
Beispielanfrage:
https://app.easy-feedback.com/api/v2/members/dataexport/1
Ergebnis:
{
"0": {
"title": "Nutzen Sie das erste Mal unsere API?",
"id": "280",
"results": {
"0": "Ja"
}
},
"1": {
"title": "Welche Farbe dominiert im easy-feedback Logo?",
"id": "283",
"results": {
"0": "",
"1": "Rot",
"2": ""
},
"answers": {
"0": "Blau",
"1": "Rot",
"2": "Gelb"
}
}
}
Results: alle Ergebnisse abfragen
Diese Methode liefert alle Ergebnisse in Form von IDs zurück. Damit lassen sich sämtliche Ergebnisse zu einzelnen Umfrage auslesen. Der surveyid Parameter ist bei dieser Methode verpflichtend!
Zu beachten: Die Rückgabe ist auf 1000 Ergebnisse begrenzt. Daher sind bei der Abfrage ein oder mehrere Parameter zu setzen. Zum einen sollte immer die „surveyid“ gesetzt werden, um die Abfrage auf eine Umfrage zu begrenzen. Und mit dem Parameter „page“ und „limit“ kann die Abfrage zusätzlich eingegrenzt werden, um das Limit von 1000 nicht zu überschreiten. Der surveyid Parameter ist bei dieser Methode verpflichtend!
URL |
/api/v2/results |
||||||||||||||||||||||||||||||
Methode |
GET |
||||||||||||||||||||||||||||||
Parameter |
surveyid (verpflichtend), questionid, answerid, levelid, answertext, memberid, page, limit |
||||||||||||||||||||||||||||||
Rückgabe |
JSON |
||||||||||||||||||||||||||||||
Rückgabewerte |
|
Beispiel: Alle Ergebnisse einer Umfrage
<?php
// Alle Ergebnisse einer Umfrage
// getAllResults.php
// v1.0.1
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
$apiUrl = 'https://app.easy-feedback.com/api/v2/results?surveyid=' . $surveyid;
$ch = curl_init($apiUrl);
// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response = curl_exec($ch);
// Das Ergebnis als JSON anzeigen
if ($response === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
$jsonData = json_decode($response, true);
if ($jsonData === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort.';
} else {
echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT)."</pre>";
}
}
// cURL-Verbindung schließen
curl_close($ch);
?>
Beispiel: Ergebnisse für Teilnehmer X einer Umfrage
<?php
// Ergebnisse für Teilnehmer X einer Umfrage
// getAllResultsByMemberId.php
// v1.0.1
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
// Teilnehmer ID hier eintragen
$memberid = 'YOUR_MEMBERID';
$apiUrl = 'https://app.easy-feedback.com/api/v2/results?surveyid=' . $surveyid . '&memberid=' . $memberid;
$ch = curl_init($apiUrl);
// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response = curl_exec($ch);
// Das Ergebnis als JSON anzeigen
if ($response === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
$jsonData = json_decode($response, true);
if ($jsonData === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort.';
} else {
echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT)."</pre>";
}
}
// cURL-Verbindung schließen
curl_close($ch);
?>
Beispiel: Alle Ergebnisse einer Umfrage von Tag X bis Tag Y
<?php
// Alle Ergebnisse einer Umfrage von Tag X bis Tag Y
// getAllResultsFromDate.php
// v1.0.1
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage ID hier einfügen
$surveyid='YOUR_SURVEYID';
// Datumsbereich JJJJ-MM-TT
$startDateFilter = '2020-01-01';
$endDateFilter = '2030-12-30';
$apiUrl = 'https://app.easy-feedback.com/api/v2/members?surveyid=' . $surveyid;
$apiUrl2 = 'https://app.easy-feedback.com/api/v2/results?surveyid=' . $surveyid;
$ch = curl_init($apiUrl);
// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response1 = curl_exec($ch);
// Das Ergebnis als JSON anzeigen
if ($response1 === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für API 1.';
} else {
// Prüfen ob Ergebnisse vorhanden
if (!array_key_exists('results',$jsonData1))
{
// Das Ergebnis als JSON anzeigen
echo "<pre>" . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";
exit;
}
// Nur Ergebnisse im angegebenen Zeitraum auswählen
$selectedResultsApi1 = array_filter($jsonData1['results'], function($result) use ($startDateFilter, $endDateFilter) {
if (isset($result['StartDate'])) {
$startDate = date('Y-m-d', strtotime($result['StartDate']));
return $startDate >= $startDateFilter && $startDate <= $endDateFilter;
}
return false;
});
$memberIdsApi1 = array_map(function ($result) {
return $result['Id'];
}, $selectedResultsApi1);
}
}
// cURL-Verbindung schließen
curl_close($ch);
$ch2 = curl_init($apiUrl2);
// cURL-Optionen konfigurieren
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response2 = curl_exec($ch2);
// Das Ergebnis als JSON anzeigen
if ($response2 === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch2);
} else {
$jsonData2 = json_decode($response2, true);
if ($jsonData2 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für API 2.';
} else {
// Ergebnisse aus der zweiten API-Abfrage auswählen, die in der ersten API-Abfrage vorhanden sind
$selectedResultsApi2 = array_filter($jsonData2['results'], function ($result) use ($memberIdsApi1) {
return in_array($result['MemberId'], $memberIdsApi1);
});
// Ggf. numerische Indizes entfernen
$selectedResultsApi2 = array_values($selectedResultsApi2);
// Das Ergebnis als JSON anzeigen
echo "<pre>" . json_encode($selectedResultsApi2, JSON_PRETTY_PRINT) . "</pre>";
}
}
// cURL-Verbindung schließen
curl_close($ch2);
?>
Beispiel: Alle Ergebnisse einer Umfrage wo die Antwort ID X gegeben wurde
<?php
// Alle Ergebnisse einer Umfrage wo die Antwort ID X gegeben wurde
// getAllResultsWithAnswerIdX.php
// v1.0.1
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
// Die zu suchende ID
$answerid = "2";
$apiUrl = 'https://app.easy-feedback.com/api/v2/results?surveyid=' . $surveyid . "&answerid=" . $answerid;
$ch = curl_init($apiUrl);
// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response = curl_exec($ch);
// Das Ergebnis als JSON anzeigen
if ($response === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
$jsonData = json_decode($response, true);
if ($jsonData === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort.';
} else {
echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT)."</pre>";
}
}
// cURL-Verbindung schließen
curl_close($ch);
?>
Beispiel: Alle Ergebnisse einer Umfrage wo Antworttext X gegeben wurde
<?php
// Alle Ergebnisse einer Umfrage wo Antworttext X gegeben wurde
// getAllResultsWithAnswerTextX.php
// v1.0.1
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
// Der zu suchende Text einer Textfrage
$answertext = "YOUR_TEXT";
$apiUrl = 'https://app.easy-feedback.com/api/v2/results?surveyid=' . $surveyid . "&answertext=" . urlencode($answertext);
$ch = curl_init($apiUrl);
// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
// Anfrage durchführen
$response = curl_exec($ch);
// Das Ergebnis als JSON anzeigen
if ($response === false) {
echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
$jsonData = json_decode($response, true);
if ($jsonData === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort.';
} else {
echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT)."</pre>";
}
}
// cURL-Verbindung schließen
curl_close($ch);
?>