Aller au contenu

Identifier un utilisateur lanceur de scène en LUA


Messages recommandés

Posté(e)

Bonjour à tous !

 

Je cherche à identifier l'id de l'utilisateur qui lance une scène quand elle n'est pas lancée automatiquement ! J'ai cherché, rien trouvé...

 

Vous avez une idée de comment le récupérer ?

 

Y'a bien http://ip_box//api/users qui donne la liste des users, mais comment avoir CELUI qui lance la scène ...

 

Merci de votre aide !

 

++

 

Posté(e)

Pas sûr que ça soit la meilleure méthode, mais au début de ta scène, tu peux commencer par regarder le user qui a la plus faible valeur de "lastActivity" dans /api/userActivity

Normalement, si tu as un 0 dans ce champ, c'est que c'est l'utilisateur actif.

 

Le risque c'est qu'un autre utilisateur fasse une action au même moment, du coup tu aurais 2 utilisateurs avec cette valeur à 0, donc impossible à différencier.

Posté(e) (modifié)

Trouvé, en fait il faut regarder directement dans /api/loginStatus

{
	"status": true,
	"userID": 2,
	"username": "user@domaine.com",
	"type": "superuser",
	"analyticsUserIdHash": "abcdefghijklmnopqrstuvwxyz"
}
{
	"status": true,
	"userID": 127,
	"username": "Lazer",
	"type": "user",
	"analyticsUserIdHash": "abcdefghijklmnopqrstuvwxyz"
}

 

Donc au début de ta scène, tu vas chercher cette info avec api:get("/loginStatus"), puis tu l'affiches dans le debug de ta scène.

Ainsi, en regardant la zone de debug, tu verras tous les utilisateurs qui ont exécuté ta scène, avec l'heure précise.

 

Modifié par Lazer
  • Like 2
Posté(e)

local user = api.get("/loginStatus")

print(user.username)

local user = api.get("/loginStatus")

print(user.username)

 

Ca marche ... NICKEL !!!

 

:19:

 

Posté(e)

Ca marchait et bim... depuis la 4.55 ca ne marche plus !

 

Ce qui est étonnant, car en pointant l'URL vers

http://<ip>/api/loginStatus 

on a bien les éléments du tableau

 

Mais dans le code LUA, on a autre chose..
 

 

{
['limit'] = 5,
['timeLeft'] = 0,
['status'] = false,
['retryNumber'] = 0
}


Une idée ?

Mes fonctions buguent...

Posté(e) (modifié)

Bonjour,

Ca veut dire que le code LUA est exécuté sans qu'il y aie un utilisateur de connecté.

Pour cela, il faut d'abord tester 'status' et si il est à true alors prendre le 'username'.

Voilà ... :D

 

Modifié par Kana-chan
Posté(e)

Comment un utilisateur ne peut pas etre connecté, puisque j'utilise le code dans une fonction à déclenchement manuel ?

(donc forcément connecté pour y avoir accès...)

 

Je vais faire quelques tests !

Merci pour l'explication !

×
×
  • Créer...