I want a key: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Trublu (Diskussion | Beiträge) |
Trublu (Diskussion | Beiträge) K →API |
||
Zeile 40: | Zeile 40: | ||
|beschreibung=Sendet eine Anfrage mit einem Text | |beschreibung=Sendet eine Anfrage mit einem Text | ||
|param1=text, String | |param1=text, String | ||
|return1=messageId, | |return1=messageId, Long, die Id dieser Nachricht | ||
}} | }} | ||
Zeile 46: | Zeile 46: | ||
|name= sendReply | |name= sendReply | ||
|beschreibung=Beantwortet eine Anfrage mit einem Text | |beschreibung=Beantwortet eine Anfrage mit einem Text | ||
|param1= | |param1=messageId, Long, Info welche Nachricht beantwortet wird. | ||
|param2=String | |param2=text, String, die Antwort | ||
|param3= | |param3=resolved, Boolean, (optional?) Marker ob der Schlüssel übergeben wird (true=Anfrage gelöst; false="Sorry, kann leider nicht") | ||
|return1= | |return1=messageId, Long, die messageId dieser Nachricht | ||
}} | }} | ||
Zeile 55: | Zeile 55: | ||
|name= subscribe | |name= subscribe | ||
|beschreibung=meldet einen Client an | |beschreibung=meldet einen Client an | ||
|param1=String | |param1=clientIdentifier, String, | ||
|param2=String | |param2=userString, String, Freitext für den Benutzer | ||
|return1= | |return1=clientId, Long, die Id für den Client | ||
}} | }} | ||
{{API-Methode | {{API-Methode | ||
|name= unsubscribe | |name= unsubscribe | ||
|beschreibung=meldet einen Client | |beschreibung=meldet einen Client ab | ||
|param1= | |param1=clientId, Long, die Id für den Client | ||
}} | }} | ||
Version vom 15. April 2015, 05:32 Uhr
IWAK - I want a key' soll ein System werden um einfach und effizient alle zu erreichen, die aktuell einen Schlüssel zum Freien Labor haben.
Anforderungen
- möglichst viele Client-Anwendungen unterstützen (Messenger, IRC, SMS, ...)
- Einfache Bedienung, nur einmal handeln um alle möglichst schnell zu erreichen.
- Rückkanal von jedem Client zum Anfragenden ermöglichen
Core
Ablauf:
- P1 sendet Anfrage ("möchte gerade ins Labor, wer kann mir einen Schlüssel leihen?")
- Anfrage wird an alle (kostenlosen) Clients P2,...,Pn versendet
- Fall1: P2 sendet positive Antwort ("Ja klar, fahre gerade selber hin"), Anfrage beendet.
- Fall2: (optional) P2 sendet negative Antwort ("ich kann leider nicht"), Anfrage bleibt offen
- Fall3: Timeout für kostenlose Clients, kostenpflichtige Clients werden benachrichtigt
- Fall4: weiterer Timeout: Anfrage wird erneut an alle Clients versendet, Wiederholung bis positive Antwort oder konfigurierte Obergrenze.
- Fall5: P1 gibt auf, beendet Anfrage
- Fall6: (optional) Alle aktuell angemeldeten Clients haben negative Antwort gesendet, Anfrage wird beendet.
- Clients können sich an- und abmelden
- Auch Antworten können wiederum beantwortet werden, dadurch entsteht keine neue Anfrage, sondern die Antwort geht direkt an den vorherigen Autor (oder an alle). Diese Funktion sollte nicht für kostenpflichtige Clients möglich sein (dann Fehlermeldung an Absender?)
- Gamification: Schnelles (positives) Antworten gibt Bonuspunkte (für irgendwas anderes)
API
Rest? Thrift?
Clients
Telegram
- bietet OpenSource-Clients und offene API
- https://core.telegram.org/api/obtaining_api_id
SMS
- SMS-Gateway benötigt (kostenpflichtig?)
- Zeitverzögert?
- Kosten vermeiden, wenn jemand anderes vor Ablauf einer Wartezeit bereits positiv antwortet
IRC
sollte über den vorhandenen Bot relativ leicht zu adaptieren sein
Weitere/Ideen
- Twitter-DM?
- Jabber?