# Applications API

## createApplication

`POST` `https://api.pushwoosh.com/json/1.3/createApplication`

สร้าง application ใหม่ในบัญชี

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| authorize\_all\_tokens | boolean | อนุญาตให้ API token ทั้งหมดสื่อสารกับแอปนี้ได้ |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| icon | string | เนื้อหาไบนารีที่เข้ารหัส Base64 ของไฟล์ png |
| sdk\_ios | string | ประเภท iOS SDK ค่าที่เป็นไปได้: "pw" หรือ "corona" สำหรับ Corona payload ของ push จะแตกต่างออกไป |
| sdk\_android | string | ประเภท Android SDK ค่าที่เป็นไปได้: "pw", "corona", "phonegap" ผู้ใช้ AppPresser ให้เลือก "phonegap" |
| title\* | string | ชื่อสำหรับแอปใหม่ใน Pushwoosh |

ตัวอย่างการตอบกลับ:
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "application": "1DC69-73EDB"
  }
}
```

ตัวอย่างโค้ด:
```
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",          // จำเป็น API access token จาก Pushwoosh Control Panel
    "icon": "iVBORw0KGgoAAAANSUhEUgAAA...",  // ไม่บังคับ เนื้อหาไบนารีที่เข้ารหัส Base-64 ของไฟล์ png
    "authorize_all_tokens": true,            // ไม่บังคับ หากเป็น true จะอนุญาตให้ api token ทั้งหมดสื่อสารกับแอปนี้ได้
    "sdk_ios": "pw",                         // ไม่บังคับ ค่าที่เป็นไปได้คือ "pw" หรือ "corona"
    "sdk_android": "pw",                     // ไม่บังคับ ค่าที่เป็นไปได้คือ "pw", "corona" หรือ "phonegap"
    "title": "APP_TITLE"                     // จำเป็น ชื่อสำหรับแอปใหม่ใน Pushwoosh
  }
}
```

## updateApplication

`POST` `https://api.pushwoosh.com/json/1.3/updateApplication`

อัปเดตการตั้งค่า application

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| application\* | string | [รหัส Pushwoosh application](/th/developer/api-reference/api-identifiers/#application-code) |
| icon | string | เนื้อหาไบนารีที่เข้ารหัส Base64 ของไฟล์ png |
| sdk\_ios | string | ประเภท iOS SDK ค่าที่เป็นไปได้: "pw" หรือ "corona" สำหรับ Corona payload ของ push จะแตกต่างออกไป |
| sdk\_android | string | ประเภท Android SDK ค่าที่เป็นไปได้: "pw", "corona", "phonegap" ผู้ใช้ AppPresser ให้เลือก "phonegap" |
| title | string | ชื่อใหม่สำหรับแอปใน Pushwoosh |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",     // จำเป็น API access token จาก Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",       // จำเป็น รหัส application ของแอปที่คุณต้องการอัปเดต
    "icon": "iVBORw0KGgoAAAANSUD6...",  // ไม่บังคับ เนื้อหาไบนารีที่เข้ารหัส Base-64 ของไฟล์ png
    "sdk_ios": "pw",                    // ไม่บังคับ ค่าที่เป็นไปได้คือ "pw" หรือ "corona"
    "sdk_android": "pw",                // ไม่บังคับ ค่าที่เป็นไปได้คือ "pw", "corona" หรือ "phonegap"
    "title": "APP_TITLE"                // ไม่บังคับ ชื่อใหม่สำหรับแอปใน Pushwoosh
  }
}
```

## deleteApplication

`POST` `https://api.pushwoosh.com/json/1.3/deleteApplication`

ลบแอปออกจากบัญชี

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| application\* | string | [รหัส Pushwoosh application](/th/developer/api-reference/api-identifiers/#application-code) |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
    "application": "XXXXX-XXXXX"    // จำเป็น รหัส Pushwoosh application
  }
}
```

## getApplication

`POST` `https://api.pushwoosh.com/json/1.3/getApplication`

รับรายละเอียดเกี่ยวกับแอป

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| application\* | string | [รหัส Pushwoosh application](/th/developer/api-reference/api-identifiers/#application-code) |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "application": {
      "adm_cid": "",
      "adm_secret": "",
      "android_api_type": "x31",
      "android_gcm_api_key": "x7836363631366236353566366236353739",
      "android_sdk": "x7077",
      "icon_url": null,
      "ios_gateway": "x783330",
      "ios_key_management_type": "x783631373537343666",
      "ios_key_password": "x7836353336363236353335333736353333",
      "ios_sdk": "x7077",
      "title": "0 Application For test",
      "providers": {
        "ios": true,
        "amazon": false,
        "android": false,
        "baidu_android": false,
        "chrome": false,
        "email": false,
        "firefox": false,
        "huawei_android": false,
        "internet_explorer": false,
        "osx": false,
        "safari": false,
        "sms": false,
        "web": false,
        "whats_app": false,
        "windows": false
      },
      "languages": {
        "en": "34",
        "zh": "12",
        "sv": "7",
        "de": "6",
        "pt": "6"
      }
    }
  }
}
```
</TabItem>
</Tabs>

```
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
    "application": "XXXXX-XXXXX"    // จำเป็น รหัส Pushwoosh application
  }
}
```

## getApplications

`POST` `https://api.pushwoosh.com/json/1.3/getApplications`

รับรายการ application ในบัญชี สามารถส่งคืนผลลัพธ์พร้อมการแบ่งหน้า (pagination)

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| page | integer | หมายเลขหน้าสำหรับการแบ่งหน้า (pagination) |

#### Example request

```
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // จำเป็น API access token จาก Pushwoosh Control Panel
    "page": 2                        // ไม่บังคับ หมายเลขหน้าสำหรับการแบ่งหน้า
  }
}
```

#### Response

หากมี application มากกว่า 100 รายการในบัญชี การตอบกลับจะรวม `current page` และ `total amount of pages`

#### Example Response

```
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "page": 1,   // หน้าปัจจุบัน
    "total": 2,  // จำนวนหน้าทั้งหมด
    "applications": [{
      "APPLICATION_CODE": "MyApp1"
    }, {
      "APPLICATION_CODE": "MyApp2"
    }]
  }
}
```

## getApplicationFile

`POST` `https://api.pushwoosh.com/json/1.3/getApplicationFile`

รับไฟล์การกำหนดค่าที่เกี่ยวข้องกับแอป

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| application\* | string | [รหัส Pushwoosh application](/th/developer/api-reference/api-identifiers/#application-code) |
| file\* | string | ตัวระบุ (identifier) ของไฟล์ที่จะดึงข้อมูล ดูค่าด้านล่าง |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // จำเป็น API access token จาก Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",    // จำเป็น รหัส Pushwoosh application
    "file": "ios_auto_privatekey"    // จำเป็น ตัวระบุของไฟล์ที่จะดึงข้อมูล ดูค่าด้านล่าง
  }
}
```

#### ค่าที่เป็นไปได้สำหรับพารามิเตอร์ "file":

`"ios_auto_privatekey" | "ios_manual_privatekey" | "ios_auto_certificate" | "ios_manual_certificate"       | "ios_push_certificate" | "ios_provisioning_profile" | "macos_manual_privatekey" | "macos_manual_certificate"       | "macos_push_certificate" | "safari_manual_privatekey" | "safari_push_certificate" | "safari_push_package"       |

**ตัวอย่างการตอบกลับ**:

```
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
```

## setApplicationPlatformStatus

`POST` `https://api.pushwoosh.com/json/1.3/setApplicationPlatformStatus`

เปลี่ยนสถานะแพลตฟอร์มของแอป

#### Request Body

| Name | Type | Description |
| --- | --- | --- |
| auth\* | string | [API access token](/th/developer/api-reference/api-identifiers/#api-access-token) จาก Pushwoosh Control Panel |
| application\* | string | [รหัส Pushwoosh application](/th/developer/api-reference/api-identifiers/#application-code) |
| platform\* | integer | ประเภทแพลตฟอร์ม ดูรายการประเภทแพลตฟอร์มด้านล่าง |
| status\* | string | "enable" หรือ "disable" |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "message": "iOS pushes are disabled",
    "available_platforms": {
      "iOS": false,
      "Android": true,
      "OS X": false,
      "Windows": false,
      "Amazon": false,
      "Safari": false,
      "Chrome": true,
      "Firefox": false,
    }
  }
}
```
</TabItem>
</Tabs>

```json title="Example"
{
  "request": {
    "application": "XXXXX-XXXXX",   // จำเป็น รหัส Pushwoosh application
    "auth": "yxoPUlwqm…………pIyEX4H", // จำเป็น API access token จาก Pushwoosh Control Panel
    "platform": 1,                  // จำเป็น 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows;
                                    //        9 — Amazon; 10 — Safari; 11 — Chrome; 12 — Firefox;
    "status": "disable"             // จำเป็น "disable" หรือ "enable"
  }
}
```