# LINE API

import { Badge } from '@astrojs/starlight/components';

<Aside type="caution" title="/createLineMessage устарел">
Новым интеграциям следует использовать [Messaging API v2](/ru/developer/api-reference/messaging-api-v2/) — передайте `platforms: ["LINE"]` в `Notify` и используйте блок `line` внутри `payload.content.localized_content`. См. [руководство по миграции](/ru/developer/api-reference/messaging-api-v2/migration-from-v1/#from-createlinemessage). Для сообщений с изображениями, каруселями или flex-шаблонами предварительно настройте их как шаблоны LINE в вашей панели управления Pushwoosh и ссылайтесь на код шаблона через `line.template`.
</Aside>

<Aside> Перед отправкой сообщений LINE убедитесь, что платформа Line правильно настроена. [Узнать больше](/ru/developer/first-steps/connect-messaging-services/line-configuration/) </Aside>

## createLineMessage <Badge text="Устарело" variant="caution" size="small" />

Используется для отправки сообщений LINE пользователям

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

### Отправка текстового сообщения

Простые сообщения LINE, состоящие только из обычного текста, без изображений или кнопок. [Узнать больше](https://developers.line.biz/en/reference/messaging-api/#text-message)

> **Совет:** Для расширенного форматирования и мультимедийного контента используйте шаблоны сообщений, такие как [Flex](#send-a-flex-message), [изображение](#send-an-image-message) или [карусель](#send-an-image-carousel-message).

##### Тело запроса

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | :---- | :---- | :---- |
| `application` | string | Да | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| `auth` | string | Да | [Токен доступа к API](/ru/developer/api-reference/api-identifiers/#api-access-token) для аутентификации запроса.  |
| `notifications` | array of objects | Да | Список объектов сообщений LINE для отправки. |
| `content` | string | Да | Текст сообщения LINE для отправки. Максимальное количество символов: 5000.<br/><strong>Примечание:</strong> Если указаны и <code>preset</code>, и <code>content</code>, значение из запроса переопределяет <code>preset</code>. |
| `preset` | string | Нет | Код [пресета LINE](/ru/product/content/line-presets/), созданного вами в панели управления Pushwoosh. **Примечание:** Если указаны и `preset`, и `content`, значение из запроса переопределяет `preset`. |
| `send_date` | string | Да | Дата и время отправки сообщения. Используйте формат `YYYY-MM-DD HH:mm` или `now` для немедленной отправки. |
| `devices` | array of strings | Да | Список кодов устройств (user ID) для отправки сообщения LINE. |

```
{
    "request": {
    "application": "XXXXXX-XXXXXX",
    "auth": "**************************************",
        "notifications": [
            {
                "content": "test",
                "preset": "preset_code",
                "send_date":"now",
                "devices": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
            }
        ]
    }
}

```

### Отправка сообщения с изображением

Вы можете отправить [сообщение с изображением](https://developers.line.biz/en/reference/messaging-api/#image-message) пользователям LINE, указав объект изображения в поле `template` вашего запроса.

Для каждого сообщения с изображением требуется два URL-адреса: один для **полноразмерного изображения (image\_url)** и другой для **предпросмотра (preview\_image\_url)**. Когда пользователи нажимают на предпросмотр, открывается полноразмерное изображение. Убедитесь, что оба URL-адреса используют HTTPS (TLS 1.2 или новее) и ведут на общедоступные файлы изображений.

Для получения дополнительной информации см. раздел [Image Message](https://developers.line.biz/en/reference/messaging-api/#image-message) в документации LINE Messaging API.

##### Тело запроса

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | ----- | ----- | ----- |
| `application` | string | Да | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| `auth` | string | Да | [Токен доступа к API](/ru/developer/api-reference/api-identifiers/#api-access-token), используемый для аутентификации запроса. |
| `notifications` | array of objects | Да | Список сообщений для отправки. |
| `content` | string | Да | Используется как резервный текст или текст для предпросмотра сообщения. Код пресета LINE, созданного вами в панели управления Pushwoosh.<br/><strong>Примечание:</strong> Если указаны и <code>preset</code>, и <code>template</code>, используется <code>template</code> из запроса.<br/>Если указаны и <code>preset</code>, и <code>content</code>, <code>content</code> из запроса переопределяет пресет. |
| `send_date` | string | Да | Дата и время отправки сообщения. Используйте формат `YYYY-MM-DD HH:mm` или `now` для немедленной отправки. |
| `devices` | array of strings | Да | Список кодов устройств (user ID) для отправки сообщения LINE. |
| `preset` | string | Нет | Код [пресета LINE](/ru/product/content/line-presets/), созданного вами в панели управления Pushwoosh.<br/><strong>Примечание:</strong> Если в запросе указаны и <code>preset</code>, и <code>template</code>, значения из <code>template</code> переопределят те, что определены в пресете.<br/>Если в одном запросе указаны и <code>preset</code>, и <code>content</code>, <code>content</code>, предоставленный непосредственно в запросе, переопределит контент из <code>preset</code>. |
| `template` | object | Да | Шаблон макета сообщения. Поддерживает несколько типов сообщений. Подробности см. ниже.  |

##### Параметры шаблона

**Тип:** image

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | :---- | :---- | :---- |
| `image_url` | string | Да | URL полноразмерного изображения (должен использовать HTTPS). **Максимальная длина:** 2000 символов. **Формат:** JPEG, PNG. **Максимальный размер:** 10 МБ. |
| `preview_image_url` | string | Да | URL изображения для предпросмотра, отображаемого в чате (должен использовать HTTPS). **Максимальная длина:** 2000 символов. **Формат:** JPEG, PNG. **Максимальный размер:** 1 МБ.  |

##### Пример запроса

```json
{
  "request": {
    "application": "XXXXXX-XXXXXX",
    "auth": "**************************************",
    "notifications": [
      {
        "content": "test",
        "send_date": "now",
        "devices": [
          "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        ],
        "preset": "preset_code",
        "template": {
          "en": {
            "image": {
              "alt_text": "some text",
              "image_url": "https://images.com/1.jpg",
              "preview_image_url": "https://images.com/1.png"
            }
          }
        }
      }
    ]
  }
}


```

### Отправка сообщения с каруселью изображений

Сообщения с каруселью изображений позволяют отображать несколько изображений в формате с горизонтальной прокруткой. Каждое изображение отображается как отдельная, некликабельная колонка, которую пользователи могут пролистывать в интерфейсе чата LINE.

Этот формат идеально подходит для демонстрации товаров, акций или визуальных подборок в увлекательной форме.

Для получения дополнительной информации обратитесь к разделу [Image Carousel Template](https://developers.line.biz/en/reference/messaging-api/#carousel) в документации LINE Messaging API.

##### Тело запроса

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | :---- | :---- | :---- |
| `application` | string | Да | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| `auth` | string | Да | [Токен доступа к API](/ru/developer/api-reference/api-identifiers/#api-access-token), используемый для аутентификации запроса. |
| `notifications` | array of objects | Да | Список сообщений для отправки. |
| `content` | string | Да | Используется как резервный текст или текст для предпросмотра сообщения.<br/><strong>Примечание:</strong> Если установлены и <code>content</code>, и <code>template</code>, используется <code>template</code>.<br/>Если в одном запросе указаны и <code>preset</code>, и <code>content</code>, <code>content</code>, предоставленный непосредственно в запросе, переопределит контент из <code>preset</code>. |
| `send_date` | string | Да | Дата и время отправки сообщения. Используйте формат `YYYY-MM-DD HH:mm` или `"now"`. |
| `devices` | array of strings | Да | Список кодов устройств (user ID) для отправки сообщения LINE. |
| `preset` | string | Нет | Код [пресета LINE](/ru/product/content/line-presets/), созданного вами в панели управления Pushwoosh.<br/><strong>Примечание:</strong> Если в запросе указаны и <code>preset</code>, и <code>template</code>, значения из <code>template</code> переопределят те, что определены в <code>preset</code>.<br/>Если в одном запросе указаны и <code>preset</code>, и <code>content</code>, <code>content</code>, предоставленный непосредственно в запросе, переопределит контент из <code>preset</code>. |
| `template` | object | Да | Шаблон макета сообщения. Поддерживает несколько типов сообщений. Подробности см. ниже. |



##### Параметры шаблона

**Тип:** image\_carousel

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | :---- | :---- | :---- |
| `alt_text` | string | Да | Резервный текст, отображаемый в превью пушей и на неподдерживаемых устройствах. Максимум 400 символов. |
| `columns` | array of objects | Да | Массив колонок с изображениями (поддерживается от 1 до 10). Каждая колонка содержит изображение. |
| `image_url` | string  | Да | URL изображения, отображаемого в каждой колонке карусели, указывающий на общедоступный файл JPEG или PNG. Должен использовать HTTPS. |

##### Пример запроса

```json
{
  "request": {
    "application": "XXXXXX-XXXXXX",
    "auth": "**************************************",
    "notifications": [
      {
        "content": "test",
        "send_date": "now",
        "devices": [
          "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        ],
        "preset": "preset_code",
        "template": {
          "en": {
            "image_carousel": {
              "alt_text": "some text",
              "columns": [
                { "image_url": "https://images.com/1.jpg" },
                { "image_url": "https://images.com/2.jpg" },
                { "image_url": "https://images.com/3.jpg" }
              ]
            }
          }
        }
      }
    ]
  }
}
```

### Отправка Flex-сообщения

Flex Messages — это мощные, настраиваемые типы сообщений, которые позволяют создавать структурированные макеты с использованием текста, изображений, кнопок и других компонентов. Они идеально подходят для таких случаев, как квитанции, карточки товаров, меню или любой контент, который выигрывает от визуальной структуризации.

Чтобы отправить Flex-сообщение, включите в свой запрос объект `template` с полезной нагрузкой `raw`. Макет сообщения должен соответствовать [спецификации LINE Flex Message](https://developers.line.biz/en/docs/messaging-api/using-flex-messages/).

**Совет:** Вы можете создавать и просматривать Flex-сообщения с помощью [симулятора LINE Flex Message](https://developers.line.biz/flex-simulator/).

##### Тело запроса

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | :---- | :---- | :---- |
| `application` | string | Да | [Код приложения Pushwoosh](/ru/developer/api-reference/api-identifiers/#application-code) |
| `auth` | string | Да | [Токен доступа к API](/ru/developer/api-reference/api-identifiers/#api-access-token), используемый для аутентификации запроса. |
| `notifications` | array of objects | Да | Список сообщений для отправки. |
| `content` | string | Да | Используется как резервный текст или текст для предпросмотра сообщения.<br/><strong>Примечание:</strong> Если установлены и <code>content</code>, и <code>template</code>, используется шаблон.<br/>Если указаны и <code>preset</code>, и <code>content</code>, контент из запроса переопределяет пресет. |
| `send_date` | string | Да | Когда отправить сообщение. Используйте `"now"` или формат `YYYY-MM-DD HH:mm`. |
| `devices` | array of strings | Да | Список токенов устройств LINE (user ID) для получения сообщения. |
| `preset` | string | Нет | Код [пресета LINE](/ru/product/content/line-presets/), созданного вами в панели управления Pushwoosh.<br/><strong>Примечание:</strong> Если указаны и <code>preset</code>, и <code>template</code>, шаблон переопределяет пресет.<br/>Если указаны и <code>preset</code>, и <code>content</code>, контент из запроса переопределяет пресет. |
| `template` | object | Да | Шаблон макета сообщения. Поддерживает несколько типов сообщений. Подробности см. ниже. |

##### Параметры шаблона

Для Flex-сообщения используйте структуру raw.
Тип: raw (Flex)

| Параметр <div style="width:180px"></div>| Тип  <div style="width: 80px"></div>| Обязательный | Описание <div style="width:180px"></div> |
| :---- | :---- | :---- | :---- |
| `alt_text` | string | Да | Резервный текст, отображаемый в уведомлениях, превью чатов и цитатах. Максимум 400 символов. |
| `content`  | object  | Да | Макет Flex-сообщения, структурированный с использованием `bubble`, `box`, `text` и других компонентов в соответствии со спецификацией Flex от LINE. |

##### Пример запроса

```json
{
  "request": {
    "application": "XXXXXX-XXXXXX",
    "auth": "**************************************",
    "notifications": [
      {
        "content": "test",
        "send_date": "now",
        "devices": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"],
        "preset": "preset_code", 
        "template": {
          "en": {
            "raw": {
              "alt_text": "My raw template",
              "content": {
                "type": "bubble",
                "body": {
                  "type": "box",
                  "layout": "vertical",
                  "contents": [
                    {
                      "type": "text",
                      "text": "RECEIPT",
                      "weight": "bold",
                      "color": "#1DB446",
                      "size": "sm"
                    }
                    // Additional components...
                  ]
                }
              }
            }
          }
        }
      }
    ]
  }
}
```