# Geozones-API

## getNearestZone

Wird intern vom SDK aufgerufen. Ruft die Parameter der nächstgelegenen Geozone und die Entfernung zu ihr ab. Zeichnet auch den Gerätestandort für Geo-Push-Benachrichtigungen auf.

```http
POST https://api.pushwoosh.com/json/1.3/getNearestZone
```


### Parameter des Anfragekörpers  


| Parameter | Typ <div style="width:80px"></div> | Erforderlich | Beschreibung |
|-----------|--------|:--------:|-------------|
| **application** | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| **hwid** | `string` | Ja | [Hardwaregeräte-ID](/de/developer/api-reference/api-identifiers/#hardware-id), die in der `/registerDevice`-Anfrage verwendet wird. |
| **lat** | `string` | Ja | Breitengrad des Geräts. |
| **lng** | `string` | Ja | Längengrad des Geräts. |


### Anfragebeispiel 

```json
{
  "request": {
    "application": "APPLICATION_CODE", 
    "hwid": "HWID",
    "lat": 10.12345,
    "lng": 28.12345
  }
}
```

### PHP-Beispiel

```php
// Siehe http://gomoob.github.io/php-pushwoosh/get-nearest-zone.html

use Gomoob\Pushwoosh\Model\Request\GetNearestZoneRequest;

// Erstellt die Anfrageinstanz
$request = GetNearestZoneRequest::create()
    ->setHwid('HWID')
    ->setLat(10.12345)
    ->setLng(28.12345);

// Ruft den '/getNearestZone' Web Service auf
$response = $pushwoosh->getNearestZone($request);

if ($response->isOk()) {
    print 'Zone name : ' . $response->getResponse()->getName();
    print 'Latitude : ' . $response->getResponse()->getLat();
    print 'Longitude : ' . $response->getResponse()->getLng();
    print 'Range : ' . $response->getResponse()->getRange();
    print 'Distance : ' . $response->getResponse()->getDistance();
} else {
    print 'Hoppla, die Operation ist fehlgeschlagen :-(';
    print 'Status code : ' . $response->getStatusCode();
    print 'Status message : ' . $response->getStatusMessage();
}
```


## addGeoZone  

Fügt einer bestimmten App eine Geozone hinzu.  

```http
POST https://api.pushwoosh.com/json/1.3/addGeoZone
```  


### Parameter des Anfragekörpers  


| Parameter <div style="width:150px"></div>  | Typ <div style="width:80px"></div> | Erforderlich | Beschreibung |
|-----------|--------|:--------:|-------------|
| **auth** | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **application** | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| **geozones** | `array` | Ja | Geozonen-Parameter als JSON-Array. |
| **geozones.name** | `string` | Ja | Name der Geozone. |
| **geozones.lat** | `string` | Ja | Breitengrad der Geozone. |
| **geozones.lng** | `string` | Ja | Längengrad der Geozone. |
| **geozones.cooldown** | `integer` | Ja | Stille Periode nach dem Senden einer Benachrichtigung (in Sekunden). |
| **geozones.range** | `integer` | Ja | Reichweite der Geozone in Metern. Minimum 50. |
| **geozones.content** | `string oder object` | Erforderlich, wenn `presetCode` leer ist. | Nachrichteninhalt der Geozone. |
| **geozones.presetCode** | `string` | Erforderlich, wenn `content` leer ist. | [Push-Preset](/de/developer/api-reference/api-identifiers/#preset-code), das anstelle von `content` verwendet wird. |
| **geozones.cluster** | `string` | Nein | Geben Sie `null` an, um einen Cluster von der Geozone zu lösen. |
| **geozones.campaign** | `string` | Nein | Geben Sie `null` an, um eine Kampagne von der Geozone zu lösen. Wenn weggelassen, bleibt der Kampagnenwert unverändert. Hinweis: Hat eine höhere Priorität als die Kampagne im Preset. |
| **geozones.timetable** | `object` | Nein | Legt Zeitplanintervalle fest. |


### Anfragebeispiel  

```json
{ 
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // API-Zugriffstoken aus dem Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",            // Pushwoosh-Anwendungscode
    "geozones": [{
      "name": "Statue of George",            // erforderlich. Name der Geozone.
      "lat": "40.70087797",                   // erforderlich. Breitengrad der Geozone.
      "lng": "-73.931851387",                 // erforderlich. Längengrad der Geozone.
      "cooldown": 60,                         // in Sekunden, erforderlich. Stille Periode nach dem Senden einer Benachrichtigung
      "range": 50,                            // in Metern, Minimum 50, erforderlich. Reichweite der Geozone.
      "content": "Lorem ipsum dolor sit amet,
       consectetur adipiscing elit.",         // oder Objekt
      "presetCode": "AAAAA-BBBBB",            // optional. Push-Preset kann anstelle von Inhalt verwendet werden
      "cluster": "GEOZONE CLUSTER CODE",      // optional. Die Abklingzeit des Clusters wird angewendet
      "campaign": "CAMPAIGN_CODE",            // optional. Geben Sie null an, um die Kampagne von der Geozone zu lösen
      "timetable": {                          // optional
        "timezone": 1234,                     // in Sekunden
        "Mon": [                              // verfügbare Tage: Mo, Di, Mi, Do, Fr, Sa, So. Push-Versand
          {
            "start": "04:11",
            "stop": "12:00"
          }
        ],
        "Sun": [
          {                                    // ein oder zwei Intervalle
            "start": "01:11",
            "stop": "17:00"
          },
          {
            "start": "18:01",
            "stop": "23:59"
          }
        ]
      }
    }]
  }
}

```
## updateGeoZone  

Aktualisiert die Eigenschaften der Geozone.  

```http
POST https://api.pushwoosh.com/json/1.3/updateGeoZone
```  

### Parameter des Anfragekörpers  

| Parameter <div style="width:150px"></div> | Typ <div style="width:80px"></div> | Erforderlich | Beschreibung |
|-----------|--------|:--------:|-------------|
| **auth** | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **geoZoneId** | `string` | Ja | [Geozonen-ID](/de/developer/api-reference/api-identifiers/#geozone-id) aus der `/addGeoZone`-Anfrage. |
| **name** | `string` | Nein | Neuer Name der Geozone. |
| **cooldown** | `integer` | Nein | Zu aktualisierende Abklingzeit, in Sekunden. |
| **status** | `integer` | Nein | 0 - deaktiviert, 1 - aktiviert. |
| **content** | `string` | Nein | Inhalt für die Geozonen-Push-Benachrichtigung. Kann nicht mit `presetCode` verwendet werden. |
| **cluster** | `string` | Nein | Neuer Cluster-Name. Geben Sie `null` an, um den Cluster von der Geozone zu lösen. |
| **campaign** | `string` | Nein | Neue Kampagnen-ID. Geben Sie `null` an, um die Kampagne von der Geozone zu lösen. Wenn weggelassen, wird der Kampagnenwert nicht geändert. Hat eine höhere Priorität als eine Kampagne aus einem Preset. |
| **lat** | `number` | Nein | Breitengrad der Geozone. |
| **lng** | `number` | Nein | Längengrad der Geozone. |
| **range** | `integer` | Nein | Neue Reichweite in Metern. |
| **timetable** | `object` | Nein | Geozonen-Zeitplan. Siehe weitere Informationen unten. |

---


### Anfragebeispiel  

```json
{ 
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // erforderlich, API-Zugriffstoken aus dem Pushwoosh Control Panel
    "geoZoneId": 100016750,                  // erforderlich, aus der /addGeoZone-Methode
    "name": "new geozone name",              // optional
    "cooldown": 222,                         // in Sekunden, optional
    "status": 0,                             // optional, 0 - deaktiviert, 1 - aktiviert
    "presetCode": "BBBBB-AAAAA",             // optional, kann nicht zusammen mit "content" verwendet werden
    "content": "new geozone content",        // optional, kann nicht zusammen mit "presetCode" verwendet werden
    "cluster": "GEOZONE CLUSTER CODE",       // optional. Geben Sie null an, um den Cluster von der Geozone zu lösen
    "campaign": "CAMPAIGN_CODE",             // optional. Geben Sie null an, um die Kampagne von der Geozone zu lösen
    "lat": 10.56,                            // optional, Breitengrad der Geozone
    "lng": 12.523,                           // optional, Längengrad der Geozone
    "range": 500,                            // optional, Reichweite der Geozone
    "timetable": {                           // optional
      "timezone": 1234,                      // in Sekunden
      "Mon": [                               // verfügbare Tage: Mo, Di, Mi, Do, Fr, Sa, So. Push-Versand
        {
          "start": "04:11",
          "stop": "12:00"
        }
      ],
      "Sun": [
        {                                    // ein oder zwei Intervalle
          "start": "01:11",
          "stop": "17:00"
        },
        {
          "start": "18:01",
          "stop": "23:59"
        }
      ]
    }
  }
}
``` 

## deleteGeoZone  

Entfernt Geozones aus der App.  

```http
POST https://api.pushwoosh.com/json/1.3/deleteGeoZone
```  

### Parameter des Anfragekörpers  


| Parameter   <div style="width:150px"></div>   | Typ <div style="width:80px"></div>   | Erforderlich | Beschreibung |
|-------------|--------|:--------:|-------------|
| **auth**    | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **application** | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| **geozones** | `string` | Ja | Array von IDs oder eine [einzelne ID](/de/developer/api-reference/api-identifiers/#geozone-id) einer zu entfernenden Geozone. |



### Anfragebeispiel  

```json
{
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // erforderlich, API-Zugriffstoken aus dem Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",            // erforderlich, Pushwoosh-Anwendungscode
    "geozones": [550, 526]                   // erforderlich, Geozonen-IDs
  }
}
``` 

## addGeoZoneCluster  

Fügt der App einen Geozonen-Cluster hinzu.  

```http
POST https://api.pushwoosh.com/json/1.3/addGeoZoneCluster
```  
 

### Parameter des Anfragekörpers  

| Parameter  <div style="width:150px"></div>  | Typ <div style="width:80px"></div>    | Erforderlich | Beschreibung |
|-------------|--------|:--------:|-------------|
| **auth**    | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **application** | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| **name** | `string` | Ja | Cluster-Name. |
| **cooldown** | `integer` | Ja | Eine Verzögerung, bevor ein einzelner Benutzer dieselbe Nachricht vom Geozonen-Cluster erhalten kann, in Sekunden. |


### Anfragebeispiel 

```json
{
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // erforderlich, API-Zugriffstoken aus dem Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",            // erforderlich, Pushwoosh-Anwendungscode
    "name": "Raccoon city",                  // erforderlich, Cluster-Name
    "cooldown": 3210                         // erforderlich, in Sekunden
  }
}
``` 

## deleteGeoZoneCluster  

Entfernt einen Geozonen-Cluster aus der App.  

 
```http 
POST https://api.pushwoosh.com/json/1.3/deleteGeoZoneCluster
```


### Parameter des Anfragekörpers


| Parameter   <div style="width:150px"></div>        | Typ  <div style="width:80px"></div>  | Erforderlich | Beschreibung |
|-------------------|--------|:--------:|-------------|
| **auth**         | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **application**  | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| **geoZoneCluster** | `string` | Ja | ID des zu entfernenden Geozonen-Clusters. |


### Anfragebeispiel   

```json
{
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // erforderlich, API-Zugriffstoken aus dem Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",            // erforderlich, Pushwoosh-Anwendungscode
    "geoZoneCluster": "EA1CE-69405"          // erforderlich, Cluster-ID, die aus der /addGeoZoneCluster-Anfrage erhalten wurde
  }
}
```

## listGeoZones  

Ruft eine Liste von Geozones für die App ab.  


```http
POST https://api.pushwoosh.com/json/1.3/listGeoZones
``` 

### Parameter des Anfragekörpers 


| Parameter  <div style="width:150px"></div>    | Typ <div style="width:80px"></div>   | Erforderlich | Beschreibung |
|-------------|--------|:--------:|-------------|
| **auth**    | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **application** | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |


### Anfragebeispiel  

```json
{
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // erforderlich, API-Zugriffstoken aus dem Pushwoosh Control Panel
    "application": "XXXXX-XXXXX"             // erforderlich, Pushwoosh-Anwendungscode
  }
}
```
## listGeoZoneClusters  

Ruft eine Liste von Geozonen-Clustern für die App ab.  

```http
POST https://api.pushwoosh.com/json/1.3/listGeoZoneClusters
```  


### Parameter des Anfragekörpers 


| Parameter <div style="width:150px"></div>   | Typ <div style="width:80px"></div>    | Erforderlich | Beschreibung |
|-------------|--------|:--------:|-------------|
| **auth**    | `string` | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| **application** | `string` | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |


### Anfragebeispiel

```json
{
  "request": {
    "auth": "yxoPUlwqm............pIyEX4H",  // erforderlich, API-Zugriffstoken aus dem Pushwoosh Control Panel
    "application": "XXXXX-XXXXX"             // erforderlich, Pushwoosh-Anwendungscode
  }
}
```