Friendship Tracker
Client-Bibliotheken
Direkt einsetzbare API-Wrapper für Friendship Tracker in Python, TypeScript, JavaScript, Go, Java, Rust, C#, C++, PHP, Ruby, Kotlin, Swift, Dart, Elixir und Clojure.
Jede Bibliothek ist eine einzelne Quelldatei, die du auf dieser Seite herunterlädst und in dein Projekt legst. Die meisten Sprachen kommen ohne weitere Abhängigkeiten aus - die Datei nutzt nur die Standardbibliothek. Rust ist die einzige Ausnahme: Füge die beiden im Datei-Header genannten Crates (reqwest + serde_json) deiner Cargo.toml hinzu, fertig. Jeder von der HTTP-API von Friendship Tracker bereitgestellte Endpunkt ist als typisierte Funktion gekapselt, benannt nach dem Datenmodell und der Operation - die Oberfläche spiegelt damit eins zu eins die REST-API. Die Authentifizierung läuft über dieselben persönlichen Zugriffstoken wie der Rest der API. Die Bibliotheken lassen sich direkt im eigenen Code-Repo übernehmen, prüfen und erweitern.
Download
Wähle deine Sprache und lade die einzelne Quelldatei herunter. Modulname für Friendship Tracker: friendship_client. Klassenname für sprachen mit explizitem Wrapper-Typ: FriendshipClient.
Python
friendship_client.py
Prüfsumme: 2054026e28…
TypeScript
friendship_client.ts
Prüfsumme: 6cc5d5d177…
JavaScript
friendship_client.js
Prüfsumme: 76d240e0c1…
Go
friendship_client.go
Prüfsumme: c8d2ca7179…
Java
FriendshipClient.java
Prüfsumme: 538aa03893…
Rust
friendship_client.rs
Prüfsumme: 200efd6390…
C# / .NET
FriendshipClient.cs
Prüfsumme: 197b352afe…
C++
FriendshipClient.hpp
Prüfsumme: a3c000f354…
PHP
friendship_client.php
Prüfsumme: 07d37bf335…
Ruby
friendship_client.rb
Prüfsumme: 276d9e7190…
Kotlin
FriendshipClient.kt
Prüfsumme: 1a407dc324…
Swift
FriendshipClient.swift
Prüfsumme: 59327d3c3f…
Dart
friendship_client.dart
Prüfsumme: e131548dbf…
Elixir
friendship_client.ex
Prüfsumme: ccabbb3223…
Clojure
friendship_client.clj
Prüfsumme: 7aabebc51f…
0.3.13·Modul: friendship_client·Modelle: 11Tipps zum Einbinden je Sprache
- PythonLege
friendship_client.pyins Paket;from friendship_client import .... Reine Standardbibliothek (urllib.request/json/threading); setzt Python 3.8+ voraus. - TypeScriptLege
friendship_client.tszu deinen TS-Dateien. Type-Check funktioniert mit jeder Kombination aus@types/nodeund DOM-Lib dank kleiner eingebauter Shims; zur Laufzeit wirdfetchbenutzt (Node 18+ / Browser). - GoLege
friendship_client.goin einen Ordner namensfriendship_client/, damit daspackage friendship_clientzum Import-Pfad passt. - JavaLege
FriendshipClient.javain einen Ordner namensfriendship_client/, passend zurpackage friendship_client;-Zeile in der Datei. Setzt JDK 11+ voraus; nutzt nur java.net.http. - RustDatei als Modul einbinden (
mod friendship_client;inlib.rsbzw.main.rs) und die beiden im Datei-Header genannten Crates in die Cargo.toml aufnehmen:reqwest(mit den Featuresblocking,json) sowieserde_json. - C# / .NETLege
FriendshipClient.csin einen beliebigen Ordner; die Datei deklariertnamespace friendship_client;. Setzt .NET 6+ voraus; nutzt nur HttpClient + System.Text.Json - keine NuGet-Pakete. - PHP
require_once __DIR__ . '/friendship_client.php'aus dem Bootstrap heraus, oder den Namespacefriendship_client\\per Composer-PSR-4 autoloaden. Setzt PHP 8.0+ mit den Erweiterungencurlundjsonvoraus (beide Standard). - Ruby
require_relative 'friendship_client'von beliebiger Stelle im Projekt. Die Wrapper-Klasse heisstFriendshipClient::Client. Setzt Ruby 3.0+ voraus; reine Standardbibliothek (net/http,json,securerandom). - KotlinLege
FriendshipClient.ktin einen Ordner namensfriendship_client/, passend zurpackage friendship_client-Zeile. Setzt Kotlin 1.9+ und JVM 11+ voraus; nur JDK. - SwiftLege
FriendshipClient.swiftzu deinen anderen Swift-Dateien. Setzt Swift 5.7+ voraus (macOS 12 / iOS 15 / Linux mit FoundationNetworking).
Authentifizieren
Erstelle ein persönliches Zugriffstoken (PAT) im Integrationen-Menü und übergib es der Bibliothek zur Laufzeit. Jede Sprache bietet dieselben zwei Wege: ein explizites setToken(...), oder die Umgebungsvariable XCLIENT_TOKEN für CI / Skripte. Tokens werden als Authorization: Bearer ... mit jeder Anfrage gesendet und niemals geloggt.
from friendship_client import set_tokenset_token("pat_…")# or, equivalently:# export XCLIENT_TOKEN=pat_…
Bibliothek einsetzen
Lege die heruntergeladene Datei in deinem Projekt als friendship_client.py (bzw. die Entsprechung deiner Sprache) ab und importiere die benötigten Funktionen. Jede Funktion heisst <model>_<op> (account_create, deal_list, lead_get, ...) und ruft den passenden HTTP-Endpunkt auf, inklusive Retry bei 429, exponentiellem Backoff und automatischem Beachten des Retry-After-Headers. Listen-Funktionen akzeptieren die üblichen Query-Parameter (limit, offset, sort, q sowie die für den Typ erlaubten Filter); get/update/delete-Funktionen erwarten die Datensatz-ID als erstes Argument.
from friendship_client import activity_list, activity_get, activity_create, activity_update, activity_delete# Erste 20 Datensätzepage = activity_list(limit=20, sort="-created_at")print(page["data"], page["meta"]["has_more"])# Anlegen + Lesen + Ändern + Löschencreated = activity_create({"name": "Example"})fresh = activity_get(created["id"])activity_update(created["id"], {"name": "Updated"})activity_delete(created["id"])
Verfügbare Modelle
Jede Bibliothek liefert eine Funktion pro Operation und Modell. Die Liste unten ist die Eins-zu-eins-Spiegelung der HTTP-Endpunkte für diese App.
| Modell | Funktionen |
|---|---|
| activity | activity_listactivity_getactivity_createactivity_updateactivity_delete |
| contact | contact_listcontact_getcontact_createcontact_updatecontact_delete |
| conversation | conversation_listconversation_getconversation_createconversation_updateconversation_delete |
| custom_field | custom_field_listcustom_field_getcustom_field_createcustom_field_updatecustom_field_delete |
| gift | gift_listgift_getgift_creategift_updategift_delete |
| journal_entry | journal_entry_listjournal_entry_getjournal_entry_createjournal_entry_updatejournal_entry_delete |
| life_event | life_event_listlife_event_getlife_event_createlife_event_updatelife_event_delete |
| note | note_listnote_getnote_createnote_updatenote_delete |
| pet | pet_listpet_getpet_createpet_updatepet_delete |
| relationship | relationship_listrelationship_getrelationship_createrelationship_updaterelationship_delete |
| reminder | reminder_listreminder_getreminder_createreminder_updatereminder_delete |
Umgebungsvariablen
| Variable | Zweck |
|---|---|
| XCLIENT_TOKEN | Persönliches Zugriffstoken für alle API-Aufrufe. |
| XCLIENT_BASE_URL | Eingebettete Server-URL überschreiben (nur für Tests). |
Analyse + Updates
Jeder Aufruf sendet ein Analyse-Event ans gleiche Dashboard wie die Web-UI (Operations-Name, Bibliotheksversion, OS - keine Feldwerte, keine Request-Bodies), damit das Team, das diese App betreibt, die Nutzung der Integration sieht. Die Daten werden sicher verarbeitet; ein Audit-Log aller dich betreffenden Events kann jederzeit beim Anbieter dieser App angefragt werden. Zusätzlich prüft die Bibliothek höchstens alle 24 Stunden auf eine neuere Version. In interpretierten Sprachen (Python, TypeScript unter Node, JavaScript unter Node, PHP, Ruby, Elixir) wird die Datei auf der Platte atomar ersetzt; der nächste Import lädt die neuen Bytes. In kompilierten Sprachen (Go, Java, Rust, C#, C++, Kotlin, Swift, Dart, Clojure) bleibt die Quelldatei unverändert - dort werden vorkompilierte Artefakte ausgeliefert, also stempelt der Versions-Probe nur einen Zeitstempel, den du beim Build sichtbar machen kannst. Mit XCLIENT_NO_AUTOUPDATE=1 lässt sich die Prüfung komplett abschalten.