Dokumentacja integracji zewnętrznych

Połącz swoją aplikację z kontem TigerSystem

Konto TigerSystem łączy każdą aplikację i każde urządzenie. Twoja aplikacja, urządzenie lub Home Assistant łączy się z nim natywnie przez Firebase: loguje się własnymi danymi użytkownika, odczytuje jego szpule i regały w Firestore i zapisuje z powrotem wagę.

GitHub ↗

$ GET  https://tigertag-cdn.web.app/__/firebase/init.json

POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key={apiKey}
     { "email": "user@example.com", "password": "…", "returnSecureToken": true }
Czas ważności idToken: odśwież go, zanim wygaśnie
1 hCzas ważności idToken: odśwież go, zanim wygaśnie
Zalecany minimalny odstęp między odpytywaniami
5 minZalecany minimalny odstęp między odpytywaniami
Minimalny okres wycofywania przed zmianą nazwy lub usunięciem pola
3 miesiąceMinimalny okres wycofywania przed zmianą nazwy lub usunięciem pola
Licencja każdego fragmentu kodu: wklej go do swojego projektu, bez podawania autorstwa
Apache-2.0Licencja każdego fragmentu kodu: wklej go do swojego projektu, bez podawania autorstwa

Jak klient łączy się z TigerSystem

Każdy klient wykonuje te same cztery kroki: pobiera publiczną konfigurację Firebase, loguje się jako użytkownik, wywołuje Firestore REST API z tokenem użytkownika i dba o to, by ten token był aktualny.

Pobierz publiczną konfigurację

Jedno żądanie GET zwraca konfigurację projektu Firebase. apiKey jest z założenia publiczny: identyfikuje projekt, a nie wywołującego. Zapisz go w pamięci podręcznej; wystarczy odświeżanie raz w tygodniu.

Zaloguj się jako użytkownik

Własny e-mail i hasło użytkownika zwracają UID, idToken ważny 1 godzinę i refreshToken. Google Sign-In wymaga przeglądarki, dlatego klienci bez interfejsu używają hasła.

Odczytuj i zapisuj w Firestore

Wysyłaj idToken jako token Bearer. Szpule znajdują się w users/{uid}/inventory, regały w users/{uid}/racks; wagi to gramy netto, daty to milisekundy Unix.

Bez konta usługi

Każdy klient loguje się własnymi danymi logowania użytkownika końcowego. Nigdy nie dołączaj SDK firebase-admin ani żadnego klucza administratora do klienta zewnętrznego.

Decydują Security Rules

Firestore Security Rules sprawdzają każde żądanie względem zalogowanego użytkownika: właściciel odczytuje i zapisuje swoje dokumenty, znajomi czytają inwentarz i regały, wszystko inne jest odrzucane.

Publiczny kontrakt

Ścieżki dokumentów i nazwy pól pozostają stabilne. Zmiana nazwy lub usunięcie pola wymaga co najmniej 3 miesięcy uprzedzenia w dzienniku zmian; nowe pola są zawsze tylko dodawane.

Home Assistant

Szkic komponentu niestandardowego, który udostępnia jeden czujnik na szpulę, z pozostałą wagą w gramach jako stanem. Przewodnik obejmuje też inwentarze znajomych, paginację i przechowywanie tokenów.

The TigerSystem apps and devices around one account

Waga ESP32 lub urządzenie NFC

Wyszukaj szpulę po zeskanowanym UID RFID (uid, a następnie twin_uid), oblicz wagę netto i zapisz weight_available oraz last_update z maską aktualizacji. Przewodnik kończy się kompletnym szkicem dla ESP32 (WiFi, ArduinoJson).

Tiger NFC Connect on a phone

Skrypt w Pythonie

Minimalny klient w Pythonie oparty na Pyrebase4: loguje się, wyświetla listę Twoich szpul i pokazuje, ile szpul ma każdy znajomy. Przewodnik zawiera cały skrypt i przykładowe uruchomienie.

Pytania

Czy potrzebuję konta usługi lub klucza administratora?

Nie. Każdy klient loguje się własnym adresem e-mail i hasłem TigerSystem użytkownika końcowego, a Firestore Security Rules decydują, co ten użytkownik może odczytać lub zapisać. Nie ma wspólnego klucza administratora, a SDK firebase-admin nigdy nie może być używany w kliencie zewnętrznym.

Dlaczego apiKey Firebase jest publiczny?

apiKey identyfikuje projekt Firebase, a nie wywołującego. Bez ważnego idToken, uzyskanego przez zalogowanie się jako prawdziwy użytkownik, nie daje dostępu do niczego; kontrolę dostępu zapewniają uwierzytelnianie i Security Rules.

Czy Home Assistant lub ESP32 mogą logować się przez Google?

Nie bezpośrednio: Google Sign-In wymaga przekierowania w przeglądarce. Użytkownik, który zawsze korzystał tylko z Google, najpierw ustawia hasło do konta TigerSystem przez funkcję przypomnienia hasła w Tiger Studio Manager 2 lub Tiger NFC Connect, a następnie loguje się e-mailem i hasłem.

Jak często moja integracja może odpytywać?

Najczęściej co 5 minut dla czujnika, co 15 minut dla przeglądu regałów i nigdy częściej niż co 30 sekund. Waga zapisuje dane tylko wtedy, gdy zmienia się ciężar. Odczyty list powinny podawać limit: 200 dla inwentarza, 50 dla regałów.

Czy moja integracja może odczytać szpule znajomego?

Tak, tylko do odczytu. Gdy dwoje użytkowników jest znajomymi, każdy z nich ma dokument dotyczący drugiego w users/{uid}/friends, a reguły pozwalają znajomemu odczytywać inwentarz i regały. Każdy z użytkowników może w dowolnej chwili usunąć znajomość, co natychmiast odcina dostęp.

Rozpocznij swoją integrację

Wybierz przewodnik dla swojej platformy i przejdź go od logowania do pierwszego odczytu. To, co jest udokumentowane, działa na produkcji.

Rozpocznij integrację