LamaPoll API auch in Python

Die REST-API-Schnittstelle von LamaPoll wurde entwickelt, um eine Verbindung zu Ihrem CRM (Customer Relationship Management) herzustellen, um auf Anfrage automatisch Befragte hinzuzufügen oder zu löschen oder um die Umfrageergebnisse einem Data-Warehouse-System oder weiteren Analysetools zur Verfügung zu stellen. Die API (Application Programming Interface) wird dabei über eine einzige Endpunkt-URL angefordert, die mit den meisten gängigen Programmiersprachen zugänglich ist. Unsere API-Dokumentation finden Sie hier: https://app.lamapoll.de/lp/api-doc/index.php

[AKTUALISIERUNG 2024] Neue LamaPoll-API: Inzwischen haben wir die Automatisierung von Umfragen mit der neuen API-Version API v2 auf ein neues Level gehoben. Die Dokumentation der neuen LamaPoll-API finden Sie sowohl in Ihrem LamaPoll-Account als auch hier: Neue LamaPoll API v2

Unsere API kann auch in Python zugänglich gemacht werden. An dieser Stelle zeigen wir Ihnen, wie Sie mit der LamaPoll-API in Python umgehen, API-Requests in Python umsetzen. Die Anleitung wurde uns freundlicherweise von unserer Community zur Verfügung gestellt. (Eine Gewähr für die Richtigkeit können wie nicht übernehmen.)

LamaPoll API in Phyton:

# ==========================================================================================================
# Abruf der Umfragedaten vom Server der LamaPoll-Website via API
# ==========================================================================================================
#   0. 
LamaPoll-Anmeldedaten
# ==========================================================================================================
email  = „max.mustermann@emailpostfach.de“
apikey = „<Privater API-Key>“
apiURL = ‚https://api.lamapoll.de/api.php‘
# ==========================================================================================================
#   1.
Überprüfe Server-Verfügbarkeit
# ==========================================================================================================
server_response = requests.get(str(apiURL)+“?task=getResults“)
if server_response.status_code == 200:
    print(„Umfrage-Server ist für Datenabruf verfügbar. Code = „+str(server_response.status_code))
else:
    print(„Fehler beim Zugriff auf Umfrage-Server. Code = „+str(server_response.status_code))
# ==========================================================================================================
#   2. Authorization Process
# ==========================================================================================================
authorization_query = requests.get(str(apiURL)+“?task=requestAuth&user=“+str(email))
authToken = str(authorization_query.json()[‚authToken‘])
authToken_apikey = str(authToken+apikey)
userToken = hashlib.sha256(authToken_apikey.encode(‚utf-8‘)).hexdigest()
request_query = requests.get(str(apiURL)+“?task=authorize&user=“+str(email)+“&userToken=“+str(userToken)+““)
requestToken = str(request_query.json()[‚requestToken‘])
requestToken_apikey = str(requestToken+apikey)
apiToken = hashlib.sha256(requestToken_apikey.encode(‚utf-8‘)).hexdigest()
print(„authToken        = „+authToken)
print(„authToken_apikey = „+authToken_apikey)
print(„userToken        = „+userToken)
print(„requestToken     = „+requestToken)
print(„apiToken         = „+apiToken)
# ==========================================================================================================
#   3. Rufe den Status alle Umfragen ab (online | inwork | offline)
# ==========================================================================================================
onlinestatus_query = requests.get(str(apiURL)+“?task=listPolls&status=online&apiToken=“+str(apiToken)+“&user=“+str(email))
inworkstatus_query = requests.get(str(apiURL)+“?task=listPolls&status=inwork&apiToken=“+str(apiToken)+“&user=“+str(email))
offlinestatus_query = requests.get(str(apiURL)+“?task=listPolls&status=offline&apiToken=“+str(apiToken)+“&user=“+str(email))
n_online = str(onlinestatus_query.json()[’numItems‘])
n_inwork = str(inworkstatus_query.json()[’numItems‘])
n_offline = str(offlinestatus_query.json()[’numItems‘])
list_online = onlinestatus_query.json()[‚items‘]
list_inwork = inworkstatus_query.json()[‚items‘]
list_offline = offlinestatus_query.json()[‚items‘]
print()
print(„Anzahl an Umfragen mit Status ONLINE  = „+n_online)
ii = 1
for x in list_online:
    print(str(ii)+“. „+x)
    ii = ii + 1
print()
ii = 1
print(„Anzahl an Umfragen mit Status INWORK  = „+n_inwork)
for x in list_inwork:
    print(str(ii)+“. „+x)
    ii = ii + 1
print()
ii = 1
print(„Anzahl an Umfragen mit Status OFFLINE = „+n_offline)
for x in list_offline:
    print(str(ii)+“. „+x)
    ii = ii + 1
print()
# ==========================================================================================================
#   4.  Funktion zum Datenabruf der Umfragedaten für Umfrage „poll_name“
# ==========================================================================================================
def get_data(pollName,email,apiToken):
    #
    # LIST OF ALL POSSIBLE PARAMETERS IN LIST par[] (see LamaPoll Site for more information https://app.lamapoll.de/#/api/doc)
    #
   
par = [str(„“) for x in range(22)]
    par[0]=“&pollName=“+str(pollName)    # & pollName=<Name of survey>(Required)
   
par[1]=“type=csv“                    # & type=csv(Required, only „csv“ available)
   
par[2]=“status=started“              # & status = <started|completed>(Optional, default „started“)
   
par[3]=“dateFrom=“                   # & dateFrom = <Date>(Optional, as UNIX-timestamp)
   
par[4]=“dateTo=“                     # & dateTo = <Date>(Optional, as UNIX-timestamp)
   
par[5]=“notAnswered=“                # & notAnswered = <Value>(Optional, default „“)
   
par[6]=“notSeen=“                    # & notSeen = <Value>(Optional, default „“)
    
par[7]=“missValue=“                  # & missValue = <Value>(Optional, default „“)
   
par[8]=“missText=“                   # & missText = <Value>(Optional, default „“)
   
par[9]=“delimiter=;“                 # & delimiter = <Char>(Optional, default „;“)
   
par[10]=“enclosure=“                 # & enclosure = <Char>(Optional, default „“)
   
par[11]=“variables=vID;vDATE;V1″     # & variables = <List of variables>(Optional, default „“)
   
par[12]=“filter=“                    # & filter = <Filter of variables>(Optional, default „“)
   
par[13]=“withResponseStats=1″        # & withResponseStats = <0|1>(Optional, default „1“)
   
par[14]=“withAttributes=1″           # & withAttributes = <0|1>(Optional, default „1“)
   
par[15]=“withPageStats=1″            # & withPageStats = <0|1>(Optional, default „1“)
   
par[16]=“exportLanguage=“            # & exportLanguage = <Language>(Optional, defaults to first survey language)
   
par[17]=“useMultiline=0″             # & useMultiline = <0|1>(Optional, default „0“)
    
par[18]=“useCodings=1″               # & useCodings = <0|1>(Optional, default „1“)
   
par[19]=“showQuestionHeader=0″       # & showQuestionHeader = <0|1>(Optional, default „0“)
   
par[20]=“apiToken=“+str(apiToken)    # & apiToken = <API-Token>(Required)
   
par[21]=“user=“+str(email)           # & user = <UserEmail>(Required)
   
request = ‚&‘.join(par)
    #
    # GET DATA FROM LamaPoll using above parameter list
    #
   
get_data_query = requests.get(str(apiURL)+“?task=getResults“+str(request))
# ==========================================================================================================
#   5.  Datenabruf für Umfrage „poll_name“
# ==========================================================================================================
pollName = „<Name of survey>“
get_data(pollName,email,apiToken)
# ==========================================================================================================

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert