> For the complete documentation index, see [llms.txt](https://docs.flowdust.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowdust.com/api/javascript-api.md).

# Javascript API

## User Objekt setzen

Soll sich geräteübergreifend gemerkt werden, wer bei einem Widget abgestimmt hat, ist es möglich den User anzugeben.

### 1. Laden und Initialisierung

Bevor der User gesetzt werden kann, ist es nötig zu warten, bis Flowdust geladen und initialisiert ist. Hierzu wird die Flowdust.ready()-Funktion aufgerufen, sobald das Widget bereit ist.&#x20;

```javascript
window.onload = () => {
   Flowdust.ready = (Flowdust) => {
   
     // dein code hier
      
     const user = {
       id: "USER_ID",
     }
     
     Flowdust.setUser(user);
   }
 }
```

{% hint style="info" %}
&#x20;Das Flowdust \<script> muss vorher geladen werden, bevor Flowdust.ready deklariert werden kann.
{% endhint %}

### 2. Manuelle Steuerung

Kann der User nicht gleich gesetzt werden wenn Flowdust bereit ist, ist es möglich das Laden des Widgets komplett manuell zu steuern. Hierzu ruft man folgende Funktion auf:

```javascript
Flowdust.setManual(true); 
```

Nun kann der User unabhängig vom Widget gesetzt werden.

Anschließend ruft man

```javascript
Flowdust.load();
```

auf, und das Widget wird geladen.

#### Single Page Apps

Hat man die manuelle Widget Steuerung mit

```javascript
Flowdust.setManual(true);
```

aktiviert, ist es bei Single Page Apps (z.B. React) nötig, den folgenden Code aufzurufen, nachdem die User ID gesetzt wurde:

```javascript
Flowdust.setManual(false);
Flowdust.load();
```

### 3. User auslesen

Will man den momentan gesetzten User auslesen, kann man folgende Funktion aufrufen:

```javascript
const user = Flowdust.getUser();
```
