# 애플리케이션 API

애플리케이션 API는 계정의 Pushwoosh 애플리케이션을 관리합니다. 이 API로 애플리케이션을 생성, 업데이트, 삭제 및 나열하고, 구성 파일을 다운로드하고, 플랫폼을 켜거나 끌 수 있습니다. 애플리케이션을 생성한 후 플랫폼 자격 증명을 설정하려면 [앱 구성 API](/ko/developer/api-reference/app-configuration/)를 사용하세요.

## createApplication

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

계정에 새 애플리케이션을 생성합니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------- | ------- | -------------------------------------------------------------------------------------------------- |
| authorize\_all\_tokens | boolean | 모든 API 토큰이 이 앱과 통신하도록 허용합니다. |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| icon | string | png 파일의 Base64로 인코딩된 바이너리 콘텐츠입니다. |
| sdk\_ios | string | iOS SDK 유형입니다. 가능한 값: "pw" 또는 "corona". Corona의 경우 푸시 페이로드가 다릅니다. |
| sdk\_android | string | Android SDK 유형입니다. 가능한 값: "pw", "corona", "phonegap". AppPresser 사용자는 "phonegap"을 선택합니다. |
| title\* | string | Pushwoosh에서 새 앱의 제목입니다. |

응답 예시:
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "application": "1DC69-73EDB"
  }
}
```

코드 예시:
```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",          // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "icon": "iVBORw0KGgoAAAANSUhEUgAAA...",  // 선택 사항. png 파일의 Base64 인코딩된 바이너리 콘텐츠 
    "authorize_all_tokens": true,            // 선택 사항. true인 경우 모든 API 토큰이 이 앱과 통신하도록 허용합니다.
    "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`

애플리케이션 설정을 업데이트합니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| icon | string | png 파일의 Base64로 인코딩된 바이너리 콘텐츠입니다. |
| sdk\_ios | string | iOS SDK 유형입니다. 가능한 값: "pw" 또는 "corona". Corona의 경우 푸시 페이로드가 다릅니다. |
| 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="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",     // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",       // 필수. 업데이트하려는 앱의 애플리케이션 코드
    "icon": "iVBORw0KGgoAAAANSUD6...",  // 선택 사항. png 파일의 Base64 인코딩된 바이너리 콘텐츠 
    "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`

계정에서 앱을 삭제합니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------------- | ------ | ---------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| application\* | string |[Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |

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



```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX"    // 필수. Pushwoosh 애플리케이션 코드
  }
}

```

## getApplication

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

앱에 대한 세부 정보를 가져옵니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------------- | ------ | ---------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/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,
        "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>



```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX"    // 필수. Pushwoosh 애플리케이션 코드
  }
}
```

## getApplications

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

계정의 애플리케이션 목록을 가져옵니다. 페이지네이션으로 결과를 반환할 수 있습니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| -------------------------------------- | ------- | ---------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| page | integer | 페이지네이션을 위한 페이지 번호입니다. |

#### 요청 예시

```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "page": 2                        // 선택 사항. 페이지네이션을 위한 페이지 번호
  }
}
```

#### 응답

계정에 100개 이상의 애플리케이션이 있는 경우 응답에는 `current page` 및 `total amount of pages`가 포함됩니다.

#### 응답 예시

```json
{
  "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`

앱과 관련된 구성 파일을 가져옵니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------------- | ------ | ------------------------------------------------------ |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| file\* | string | 가져올 파일의 식별자입니다. 아래 값을 참조하세요. |

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



```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",    // 필수. Pushwoosh 애플리케이션 코드
    "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`

앱의 플랫폼 상태를 변경합니다.

#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------------- | ------- | -------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token). |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/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="예시"
{
  "request": {
    "application": "XXXXX-XXXXX",   // 필수. Pushwoosh 애플리케이션 코드
    "auth": "yxoPUlwqm…………pIyEX4H", // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "platform": 1,                  // 필수. 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows;
                                    //           9 — Amazon; 10 — Safari; 11 — Chrome; 12 — Firefox;
    "status": "disable"             // 필수. "disable" 또는 "enable"
  }
}
```