Um Teilnehmer zur Umfrage über das easyfeedback E-Mail-Einladungstool einzuladen, werden Teilnehmerlisten benötigt. Die Teilnehmerlisten und die Einträge (Teilnehmer) in den Listen können über die API ausgelesen oder anonymisiert werden. Zu beachten ist, dass Teilnehmerlisten technisch an zwei Stellen in easyfeedback verwendet werden:
- Als „globale“ Teilnehmerliste über den Menüpunkt „Teilnehmerlisten„
- Als Teilnehmerliste, die unter „E-Mail Einladung“ der Umfrage hinzugefügt wurde
Globale Teilnehmerlisten des gesamten Account
Diese Methode bietet Zugriff auf alle Teilnehmerlisten, die für den Account angelegt wurden.
URL |
/api/v2/participants/lists |
|||||||||||||||||||||
Methode |
GET |
|||||||||||||||||||||
Parameter |
page, limit |
|||||||||||||||||||||
Rückgabe |
JSON |
|||||||||||||||||||||
Rückgabewerte |
|
Beispiel: Alle Teilnehmerlisten
<?php
// Hole alle Teilnehmerlisten
// getParticipantsLists.php
// v1.0.0
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
$apiUrl = 'https://app.easy-feedback.com/api/v2/participants/lists';
$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);
?>
Teilnehmer einer globalen Teilnehmerliste
Diese Methode bietet Zugriff auf die Teilnehmer, die in einer globalen Teilnehmerliste angelegt wurden.
URL |
/api/v2/participants/users |
||||||||||||||||||||||||||||||
Methode |
GET |
||||||||||||||||||||||||||||||
Parameter |
participantlistid, email, usercode, firstname, lastname, value1, value2, value3, value4, value5, page, limit |
||||||||||||||||||||||||||||||
Rückgabe |
JSON |
||||||||||||||||||||||||||||||
Rückgabewerte |
|
Beispiel: Alle Teilnehmer einer Teilnehmerliste
<?php
// Hole alle Teilnehmer einer Teilnehmerliste
// getParticipantsUsers.php
// v1.0.0
// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Teilnehmer nach z.B. E-Mail filtern (emailfromparticipantslist@easy-feedback.de ersetzen durch eigene E-Mail aus der Teilnehmerliste)
$participantlistid = '';
$email = 'emailfromparticipantslist@easy-feedback.de';
$usercode = '';
$firstname = '';
$lastname = '';
$value1 = '';
$value2 = '';
$value3 = '';
$value4 = '';
$value5 = '';
$page = '';
$limit = '';
$apiUrl = 'https://app.easy-feedback.com/api/v2/participants/users?participantlistid=' . $participantlistid .
'&email=' . urlencode($email) . '&usercode=' . urlencode($usercode) . '&firstname=' . urlencode($firstname) . '&lastname=' . urlencode($lastname) .
'&value1=' . urlencode($value1) . '&value2=' . urlencode($value2) . '&value3=' . urlencode($value3) . '&value4=' . urlencode($value4) .
'&value5=' . urlencode($value5) . '&page=' . $page . '&limit=' . $limit;
$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);
?>
Zusätzliche Spalten (Values) in der Teilnehmerliste
Innerhalb der Teilnehmerliste können beliebig viele weitere Spalten (Values) pro Teilnehmer hinzugefügt werden. Mit dieser Methode können die zusätzlichen Spalten abgefragt werden.
URL |
/api/v2/participants/customvalues |
||||||||||||
Methode |
GET |
||||||||||||
Parameter |
participantlistid, page, limit |
||||||||||||
Rückgabe |
JSON |
||||||||||||
Rückgabewerte |
|
Value der zusätzlichen Spalten in der Teilnehmerliste
Mit dieser Methode lassen sich die Values der zusätzlichen Spalten pro Teilnehmer auslesen.
URL |
/api/v2/participants/users/customvalues |
||||||||||||
Methode |
GET |
||||||||||||
Parameter |
participantlistid, participantlistentryid, value, page, limit |
||||||||||||
Rückgabe |
JSON |
||||||||||||
Rückgabewerte |
|
Beispiel: Alle Daten aus Teilnehmerlisten mit verknüpften benutzerdefinierten Werte
// Hole alle Daten aus Teilnehmerliste/n einer Umfrage und verknüpfe benutzerdefinierte Werte
// getSurveysParticipantsListsEntryWithCustomValues.php
// v1.0.0
// Zugriffs-Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage-ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
// API-URLs
$apiUrl1 = 'https://app.easy-feedback.com/api/v2/surveys/participants/lists/entry/?surveyid=' . $surveyid;
$apiUrl2 = 'https://app.easy-feedback.com/api/v2/participants/users/customvalues';
// cURL-Initialisierung für Teilnehmerliste (participantslists)
$ch1 = curl_init($apiUrl1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response1 = curl_exec($ch1);
if ($response1 === false) {
echo 'Fehler bei der cURL-Anfrage für Teilnehmerliste (participants lists): ' . curl_error($ch1);
exit;
}
curl_close($ch1);
// cURL-Initialisierung für benutzerdefinierte Werte (customvalues)
$ch2 = curl_init($apiUrl2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response2 = curl_exec($ch2);
if ($response2 === false) {
echo 'Fehler bei der cURL-Anfrage für benutzerdefinierte Werte (customvalues): ' . curl_error($ch2);
exit;
}
curl_close($ch2);
// JSON-Daten dekodieren
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für Teilnehmerliste (participants lists):.';
exit;
}
$jsonData2 = json_decode($response2, true);
if ($jsonData2 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für benutzerdefinierte Werte (customvalues).';
exit;
}
// Verknüpfung der Daten
if ($jsonData1 && $jsonData2) {
foreach ($jsonData1['results'] as &$participantslists) {
$participantListUserId = $participantslists['ParticipantListUserId'];
$customValues = array_filter($jsonData2['results'], function ($customValue) use ($participantListUserId) {
return $customValue['ParticipantListUserId'] === $participantListUserId;
});
// Füge die Werte der Custom Values direkt zu $participantslists hinzu
$i = 1;
foreach ($customValues as $customValue) {
$participantslists['Value' . $i++] = $customValue['Value'];
}
}
}
// Ausgabe des kombinierten JSON
echo 'JSON-Antwort: <pre>' . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";
?>
Beispiel: Alle Daten aus Teilnehmerlisten mit Verknüpfung zu benutzerdefinierten Werte aus der Teilnehmerliste
<?php
// Hole alle Daten aus Teilnehmerliste/n und verknüpfe benutzerdefinierte Werte (custom values)
// getParticipantsUsersWithCustomValues.php
// v1.0.0
// Zugriffs-Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Teilnehmerlisten-ID hier einfügen
$participantlistid = 'YOUR_PARTICIPANT_LIST_ID';
// API-URLs
$apiUrl1 = 'https://app.easy-feedback.com/api/v2/participants/users/?participantlistid=' . $participantlistid;
$apiUrl2 = 'https://app.easy-feedback.com/api/v2/participants/users/customvalues/?participantlistid=' . $participantlistid;
// cURL-Initialisierung für Teilnehmerliste (participantslists)
$ch1 = curl_init($apiUrl1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response1 = curl_exec($ch1);
if ($response1 === false) {
echo 'Fehler bei der cURL-Anfrage für Teilnehmerliste (participants lists): ' . curl_error($ch1);
exit;
}
curl_close($ch1);
// cURL-Initialisierung für benutzerdefinierte Werte (custom values)
$ch2 = curl_init($apiUrl2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response2 = curl_exec($ch2);
if ($response2 === false) {
echo 'Fehler bei der cURL-Anfrage für benutzerdefinierte Werte (customvalues): ' . curl_error($ch2);
exit;
}
curl_close($ch2);
// JSON-Daten dekodieren
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für Teilnehmerliste (participants lists):.';
exit;
}
$jsonData2 = json_decode($response2, true);
if ($jsonData2 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für benutzerdefinierte Werte (customvalues).';
exit;
}
// Verknüpfung der Daten
if ($jsonData1 && $jsonData2) {
foreach ($jsonData1['results'] as &$participantsusers) {
$participantListUserId = $participantsusers['Id'];
$customValues = array_filter($jsonData2['results'], function ($customValue) use ($participantListUserId) {
return $customValue['ParticipantListUserId'] === $participantListUserId;
});
// Füge die Werte der Custom Values direkt zu $participantsusers hinzu
$i = 1;
foreach ($customValues as $customValue) {
$participantsusers['Value' . $i++] = $customValue['Value'];
}
}
}
// Ausgabe des kombinierten JSON
echo 'JSON-Antwort: <pre>' . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";
?>
Teilnehmerlisten, die unter E-Mail-Einladung hinzugefügt wurden
Diese Methode bietet Zugriff auf die Teilnehmerlisten, die unter „Teilnehmer einladen“ bei E-Mail-Einladungen einer Umfrage zugewiesen sind.
URL |
/api/v2/surveys/participants/lists |
|||||||||
Methode |
GET |
|||||||||
Parameter |
surveyid, page, limit |
|||||||||
Rückgabe |
JSON |
|||||||||
Rückgabewerte |
|
Teilnehmer einer Liste unter E-Mail-Einladungen
Diese Methode bietet Zugriff auf alle Teilnehmer einer Teilnehmerliste, die an einer Umfrage teilgenommen haben. Der surveyid Parameter ist bei dieser Methode verpflichtend!
URL |
/api/v2/surveys/participants/lists/entry |
||||||||||||||||||||||||||||||||||||||||||
Methode |
GET |
||||||||||||||||||||||||||||||||||||||||||
Parameter |
surveyid (verpflichtend), surveyparticipantlistid, email, usercode, firstname, lastname, value1, value2, value3, value4, value5, page, limit |
||||||||||||||||||||||||||||||||||||||||||
Rückgabe |
JSON |
||||||||||||||||||||||||||||||||||||||||||
Rückgabewerte |
|
Beispiel: Alle Teilnehmer einer Umfrage mit Verknüpfung zu benutzerdefinierten Werte aus der Teilnehmerliste
<?php
// Hole alle Teilnehmer einer Umfrage und verknüpfe benutzerdefinierte Werte (Custom Values) aus den Teilnehmerlisten
// getMembersWithCustomValues.php
// v1.1.0
// Zugriffs-Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';
// Umfrage-ID hier einfügen
$surveyid = 'YOUR_SURVEYID';
// Basis-URL für API
$baseUrl = 'https://app.easy-feedback.com';
// API-URL für die Teilnehmer abrufen
$apiUrl1 = $baseUrl . '/api/v2/members?surveyid=' . $surveyid;
echo "Hole Teilnehmer: " . $apiUrl1;
// cURL-Initialisierung für Teilnehmer
$ch1 = curl_init($apiUrl1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response1 = curl_exec($ch1);
if ($response1 === false) {
echo 'Fehler bei der cURL-Anfrage für Teilnehmer: ' . curl_error($ch1);
exit;
}
curl_close($ch1);
// JSON-Daten dekodieren
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für Teilnehmer.';
exit;
}
// Initialisiere ein leeres Array für die Custom Values
$customValues = [];
// API-URLs für die Custom Values abrufen und verknüpfen
if (isset($jsonData1['results']) && is_array($jsonData1['results'])) {
foreach ($jsonData1['results'] as $participant) {
// 1 Sekunde Pause zwischen den API-Aufrufen
sleep(1);
$participantlistid = $participant['ParticipantListId'];
// Überprüfen, ob eine Participant List ID verwendet wurde
if ($participantlistid > 0 && !isset($customValues[$participantlistid])) {
$apiUrl2 = $baseUrl . '/api/v2/participants/users/customvalues?participantlistid=' . $participantlistid;
echo "<br>Hole benutzerdefinierte Werte: " . $apiUrl2;
// cURL-Initialisierung für Custom Values
$ch2 = curl_init($apiUrl2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
$response2 = curl_exec($ch2);
if ($response2 === false) {
echo 'Fehler bei der cURL-Anfrage für Custom Values: ' . curl_error($ch2);
exit;
}
curl_close($ch2);
// JSON-Daten dekodieren und zu $customValues hinzufügen
$decodedResponse = json_decode($response2, true);
if ($decodedResponse === null) {
echo 'Fehler beim Dekodieren der JSON-Antwort für Custom Values.';
exit;
} else {
// Füge die Ergebnisse aus jedem Durchlauf der Schleife zu $customValues hinzu
if (isset($decodedResponse['results'])) {
$customValues[$participantlistid] = $decodedResponse['results'];
}
}
}
}
}
// Verknüpfung der Daten
if ($jsonData1 && $customValues) {
foreach ($jsonData1['results'] as &$member) {
$participantListUserId = $member['ParticipantListUserId'];
$participantlistid = $member['ParticipantListId'];
if (isset($customValues[$participantlistid])) {
$memberCustomValues = array_filter($customValues[$participantlistid], function ($customValue) use ($participantListUserId) {
return $customValue['ParticipantListUserId'] === $participantListUserId;
});
// Füge die Werte der Custom Values direkt zu $member hinzu
$i = 1;
foreach ($memberCustomValues as $customValue) {
$member['Value' . $i++] = $customValue['Value'];
}
}
}
}
// Ausgabe des kombinierten JSON
echo '<br><br>JSON-Antwort: <pre>' . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";
?>