UserAccess Klasse Feedback
Mit einer Instanz von UserAccess kann eine App auf User zugreifen, die bereits einmal im Channel waren, als die App lief. Für alle nicht zugreifbaren User kann man via UserAccess den korrekt geschriebenen Nicknamen erhalten.
Die Instanz für die UserAccess
erhält man über das KnuddelsServer-Objekt
mit KnuddelsServer.getUserAccess()
Übersicht
Methoden
eachAccessibleUser Feedback
-
callback
-
[parameters]
Loopt über alle zugreifbaren User sortiert nach Registrierzeitpunkt und führt für jeden User das übergebene Callback aus.
Parameter:
-
callback
Functionder für jeden User aufgerufen wird. Wird hier als return-value
false
zurückgegeben, so stoppt das Loopen. -
[parameters]
Object optionalObjekt zum Übergeben optionaler Parameter
-
[onStart]
Function optionalCallback, das aufgerufen wird, bevor über alle Nutzer geloopt wird
-
[onEnd]
Function optionalCallback, das aufgerufen wird, sobald über alle Nutzer geloopt wurde
-
[online]
Boolean optionalcallback
nur für User mit dem entsprechenden Online Status aufgerufen (so wieuser.isOnline() == online
). Es wird aber empfohlen anstattuser.isOnline()
diesen Parameter zu verwenden, da dieser intern optimiert ist und nur die passenden User überhaupt lädt.
-
Beispiel:
var birthdayMailCount = 0;
var parameters = {
onStart: function(accessibleUserCount)
{
KnuddelsServer.getDefaultLogger().info('Starte Geburtstagsmails.');
},
onEnd: function(accessibleUserCount)
{
KnuddelsServer.getDefaultLogger().info('Ende Geburtstagsmails: ' + birthdayMailCount);
}
};
userAccess.eachAccessibleUser(function(user, index, accessibleUserCount)
{
const kAgeYesterday = 'ageYesterday';
var userPersistence = user.getPersistence();
var ageYesterday = userPersistence.getNumber(kAgeYesterday, 0);
var ageToday = user.getAge();
var ageChanged = ageToday != ageYesterday;
if (ageChanged)
{
var topic = 'Alles Gute zum Geburtstag';
var text = 'Hey! Zu deinem Ehrentag wünschen wir dir alles Gute!';
user.sendPostMessage(topic, text);
userPersistence.setNumber(kAgeYesterday, ageToday);
birthdayMailCount++;
}
}, parameters);
exists Feedback
-
nick
Informiert darüber, ob ein Nutzer mit dem übergebenen Nicknamen existiert.
Parameter:
-
nick
String
Rückgabewert:
true
, falls ein User mit diesem Nick existiert, false
andernfalls
Beispiel:
var nick = 'someAwesomeNick';
var userAccess = KnuddelsServer.getUserAccess();
var userExists = userAccess.exists(nick);
getAccessibleUserCount Feedback
() NumberLiefert die Anzahl der für diese App zugreifbaren User.
Rückgabewert:
die Anzahl der für diese App zugreifbaren User
Beispiel:
var accessibleUserCount = KnuddelsServer.getUserAccess().getAccessibleUserCount();
getNick Feedback
-
userId
Liefert den Nicknamen des Nutzers mit der übergebenen userId in der korrekten Schreibweise.
Parameter:
-
userId
Number
Beispiel:
var nick = 'sOmEaWeSoMeNiCk';
var userAccess = KnuddelsServer.getUserAccess();
if (userAccess.exists(nick))
{
var userId = userAccess.getUserId(nick);
if (userAccess.mayAccess(userId))
{
var user = userAccess.getUserById(userId); // someAwesomeNick as user
}
else
{
var correctNick = userAccess.getNick(userId); // 'someAwesomeNick'
}
}
getUserById Feedback
-
userId
Liefert den Nutzer mit der übergebenen userId. Neben dem AppDeveloper können nur Nutzer geladen werden, die sich einmal im Channel befanden, als die App lief. Es wird empfohlen vor der
Abfrage von getUserById(userId)
mit mayAccess abzufragen, ob dies funktionieren wird.
Parameter:
-
userId
Number
Rückgabewert:
User, der die übergebene userId besitzt
Beispiel:
var nick = 'someAwesomeNick';
var userAccess = KnuddelsServer.getUserAccess();
if (userAccess.exists(nick))
{
var userId = userAccess.getUserId(nick);
if (userAccess.mayAccess(userId))
{
var user = userAccess.getUserById(userId);
}
}
getUserId Feedback
-
nick
Liefert die userId des Nutzers mit dem übergebenen Nicknamen. Wirft eine Exception, wenn der Nutzer nicht existiert, oder ein ungültiger Nick übergeben wurde (undefined, Leerstring, zu lang, etc.)
Parameter:
-
nick
String
Rückgabewert:
userId des Users mit dem angegebenen Nick
Beispiel:
var nick = 'someAwesomeNick';
var userAccess = KnuddelsServer.getUserAccess();
if (userAccess.exists(nick))
{
var userId = userAccess.getUserId(nick);
}
isUserDeleted Feedback
-
userId
Informiert darüber, ob der Nutzer gelöscht wurde.
Parameter:
-
userId
Number
Rückgabewert:
true
, falls der User mit dieser userId gelöscht wurde, false
andernfalls (auch wenn er niemals existierte)
Beispiel:
var userId = 7543345;
var userAccess = KnuddelsServer.getUserAccess();
var userWasDeleted = userAccess.isDeleted(userId);
mayAccess Feedback
-
userId
Informiert darüber, ob der Nutzer mit der übergebenen userId geladen werden darf. Neben dem AppDeveloper können nur Nutzer geladen werden, die sich einmal im Channel befanden, als die App lief.
Parameter:
-
userId
Number
Rückgabewert:
true
, falls der Nutzer mit getUserById geladen werden darf, false
andernfalls
Beispiel:
var nick = 'someAwesomeNick';
var userAccess = KnuddelsServer.getUserAccess();
if (userAccess.exists(nick))
{
var userId = userAccess.getUserId(nick);
if (userAccess.mayAccess(userId))
{
// Der User ist zugreifbar...
}
}