콘텐츠로 건너뛰기

메시지 API

createMessage 더 이상 사용되지 않음

Anchor link to

POST https://api.pushwoosh.com/json/1.3/createMessage

새로운 푸시 알림을 생성합니다.

요청 본문

Anchor link to
이름유형설명
auth*stringPushwoosh Control Panel의 API 액세스 토큰입니다.
application*stringPushwoosh 애플리케이션 코드
notifications*array메시지 매개변수의 JSON 배열입니다. 자세한 내용은 아래 요청 예시를 참조하세요.
{
"status_code": 200,
"status_message": "OK",
"response": {
"Messages": [
"C3F8-C3863ED4-334AD4F1"
]
}
}

요청 예시

Anchor link to
예시
{
"request": {
"application": "XXXXX-XXXXX", // required. Pushwoosh application code.
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel.
"notifications": [{
"send_date": "now", // optional. YYYY-MM-DD HH:mm OR 'now'
"content": { // optional. object OR string.
"en": "English", // Use "wns_content" instead for Windows.
"fr": "French"
},
"title": { // optional. object OR string.
"en": "Title", // Ignored if platform-specific titles are specified
"fr": "Titre" // 'ios_title', 'android_header', etc.
}, // see the platform-specific parameters examples below.
"subtitle":{ // optional. object OR string.
"en": "Subtitle", // Ignored if platform-specific titles are specified
"fr": "Sous-titre" // 'ios_subtitle', etc.
}, // see the platform-specific parameters examples below.
"ignore_user_timezone": true, // optional.
"timezone": "America/New_York", // optional. If ignored UTC-0 is default for "send_date".
// See https://php.net/manual/timezones.php for
// supported timezones.
"campaign": "CAMPAIGN_CODE", // optional. Campaign code to which you want to
// assign this push message.
"geozone": { // optional. Send to Geozone
"lat": 22.22,
"lng": 33.33,
"range": 110
},
"rich_media": "XXXXX-XXXXX", // optional. Copy the Rich Media code from the URL bar of
// the Rich Media editor page in Pushwoosh Control Panel.
"link": "https://google.com", // optional. For deeplinks add "minimize_link": 0
"minimize_link": 0, // optional. 0 — do not minimize, 2 — bitly. Default = 2.
// Please note that shorteners have restrictions
// on a number of calls.
"data": { // optional. JSON string or JSON object, will be passed as
"key": "value" // "u" parameter in the payload (converted to JSON string).
},
"transactionId": "unique UUID", // optional. Unique message identifier to prevent duplicating
// in case of network problems. Stored on the side of
// Pushwoosh for 5 minutes.
"platforms": [ // optional. 1 — iOS; 3 — Android; 7 — Mac OS X; 8 — Windows;
1, 3, 7, 8, 9, 10, // 9 — Amazon; 10 — Safari; 11 — Chrome;
11, 12, 17 // 12 — Firefox; 17 — Huawei
],
"preset": "XXXXX-XXXXX", // optional. Push Preset Code from your Control Panel.
// If specific params are sent in the request,
// they override preset's params.
"send_rate": 100, // optional. Throttling. Valid values are from 100 to 1000 pushes/second.
"send_rate_avoid": true, // optional. If set to true, throttling limit will not be applied to
// this specific push notification.
// Templating related, please refer to the Template Engine guide to learn more
"template_bindings": { // optional.
"TemplatePlaceholder": "Value"
},
"dynamic_content_placeholders": { // optional. Placeholders for dynamic content instead of device tags.
"firstname": "John",
"lastname": "Doe"
},
"message_type": "marketing", // optional. "marketing" or "transactional".
// If omitted, users with PW_ControlGroup: true will not receive the message.
// Frequency capping params. Ensure that Global frequency capping is configured in the Control Panel.
// Frequency capping does not apply to transactional messages.
// In all other cases, including omitted "message_type", frequency capping applies.
"capping_days": 30, // optional. Amount of days for frequency capping (max 30 days)
"capping_count": 10, // optional. The max number of pushes that can be sent from a
// specific app to a particular device within a 'capping_days'
// period. In case the message created exceeds the
// 'capping_count' limit for a device, it won't
// be sent to that device.
"capping_exclude": true, // optional. If set to true, this push notification will not
// be counted towards the capping for future pushes.
"capping_avoid": true, // optional. If set to true, capping will not be applied to
// this specific push notification.
// To save the message to the Inbox via API, use "inbox_date" or "inbox_image".
// The message is saved when at least one of these parameters is used.
"inbox_date": "2017-02-02", // optional. Specify when to remove a message from the Inbox.
// Message will be removed from Inbox at 00:00:01 UTC
// of the date specified, so the previous date is the
// last day a user can see the message in their Inbox.
// If not specified, the default removal date is the
// next day after the send date.
"inbox_image": "Inbox image URL", // optional. The image to be shown near the message.
"inbox_days": 5, // optional. Specify when to remove a message from the
// Inbox(lifetime of an inbox message in days).
// Can be used instead of the "inbox_date" parameter.
// Up to 30 days.
"devices": [ // optional. Specify tokens or hwids to send targeted push
"hwid_XXXX" // notifications. Not more than 1000 tokens/hwids in
], // an array. If set, the message will only be sent to
// the devices on the list. Application Group for devices
// list is not allowed. iOS push tokens can only be lower case.
"to": [ // optional. For email, SMS, and similar channels. List of recipients
"email_1", "email_2" // (e.g. email addresses, phone numbers). Max 1000 items.
], // For push, use "devices" instead.
// User-centric push notifications
"users": [ // optional. If set, message will only be delivered to the
"user_XXXX" // specified user ID's (set via /registerUser call).
], // If specified together with devices or to,
// the latter will be ignored. Not more than 1000 user
// ID's in an array. Application Group for users list
// is not allowed.
// Filters and conditions
"filter": "FILTER_NAME", // optional.
"conditions": [ // optional. See the remark below.
["Country", "EQ", "fr"],
["Language", "EQ", "en"]
],
"conditions_operator": "AND" // optional. Logical operator for conditions arrays.
// Possible values: AND | OR. AND is default.
}]
}
}

VoIP 알림 요청 예시

Anchor link to

Pushwoosh는 iOS 및 Android용 VoIP 스타일 통화 알림을 지원합니다.
아래에서 각 플랫폼에 대한 API createMessage 요청 예시를 찾을 수 있습니다.

예시
{
"request": {
"application": "XXXXX-XXXXX", // required. Pushwoosh application code.
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel.
"notifications": [
{
"voip_push": true, // required. Parameter is required to send out a VoIP push notification.
"ios_root_params": {
"aps": {
"mutable-content": 1 // required for iOS10+ Media attachments.
},
"callerName": "CallerName", // optional. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional. Indicates whether video calls are supported.
"supportsHolding": true, // optional. Indicates whether call holding functionality is supported.
"supportsDTMF": false, // optional. Controls Dual-Tone Multi-Frequency signal support.
"callId": "42", // optional. The unique identifier of the call to cancel.
"cancelCall": true // optional. Set to "true" to cancel the call with the specified "callId".
}
}
]
}
}
예시
{
"request": {
"application": "XXXXX-XXXXX", // required. Pushwoosh application code.
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel.
"notifications": [
{
"voip_push": true, // required. Parameter is required to send out a VoIP push notification.
"android_root_params": {
"callerName": "callerName", // optional. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional. Indicates whether video calls are supported.
"callId": 42, // optional. The unique identifier of the call to cancel.
"cancelCall": true // optional. Set to "true" to cancel the call with the specified "callId".
}
}
]
}
}

플랫폼별 매개변수

Anchor link to

iOS 매개변수

Anchor link to
예시
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"ios_title": { // optional. Object OR string. Adds iOS specific title for push notification.
"en": "title"
},
"ios_subtitle": { // optional. Object OR string. Adds iOS specific subtitle for push notification.
"en": "subtitle"
},
"ios_content": { // optional. Object OR string. Adds iOS specific content for push notification.
"en": "content"
},
"ios_badges": 5, // optional. iOS application badge number.
// Use "+n" or "-n" to increment/decrement the badge value by n.
"ios_sound": "sound file.wav", // optional. Sound file name in the main bundle of application.
// If left empty, the device will produce a default system sound.
"ios_sound_off": true, // optional. Enable/disable sound set by "ios_sound" field.
"ios_ttl": 3600, // optional. Time to live parameter - maximum message lifespan in seconds.
"ios_silent": 1, // optional. Enables silent notifications (ignore "sound" and "content").
"ios_category_id": "1", // optional. iOS8 category ID from Pushwoosh.
"ios_root_params": { // optional. Root level parameters to the aps dictionary.
"aps": {
"content-available": "0", // optional. Set "1" to send a silent push and "0" for regular push.
"mutable-content": 1 // required for iOS10+ Media attachments.
},
"callerName": "CallerName", // optional VoIP parameter. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional VoIP parameter. Indicates whether video calls are supported.
"supportsHolding": true, // optional VoIP parameter. Indicates whether call holding functionality is supported.
"supportsDTMF": false, // optional VoIP parameter. Controls Dual-Tone Multi-Frequency signal support.
"data": {} // optional User supplied data, max of 4KB
},
"ios_attachment": "URL", // optional. Insert media content in notification.
"ios_thread_id": "some thread id", // optional. Identifier to group related notifications.
// Messages with the same thread ID will be grouped
// on the lock screen and in the Notification Center.
"ios_critical": true, // optional. Marks iOS notification as a critical alert
// playing sound even if a device is muted or
// Do Not Disturb mode is on.
"ios_category_custom": "category", // optional. Custom APNS category.
"ios_interruption_level": "active", // optional. One of "passive", "active", "time-sensitive",
// "critical". Indicates the importance and
// delivery timing of a notification. Refer to the
// One-time push guide for details.
"apns_collapse_id": "promo", // optional. APNs collapse identifier. Notifications with the same
// apns_collapse_id replace each other on the device.
"apns_trim_content": 1 // optional. (0|1) Trims the exceeding content strings with ellipsis.
}]
}
}

Android 매개변수

Anchor link to
예시
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"android_header": { // optional. Android notification header.
"en": "header"
},
"android_content": { // optional. Android notification content.
"en": "content"
},
"android_root_params": { // optional. Custom key-value object.
"key": "value", // Root level parameters for the android payload recipients.
"CancelID": 12345678, // optional. Cancels the push notification with the
"voip": true, // required VoIP parameter. Parameter is required to send out VoIP push notifications.
"callerName": "callerName", // optional VoIP parameter. Caller name. If not specified, "unknown caller" is shown.
"video": true, // optional VoIP parameter. Indicates whether video calls are supported.
}, // specified Message ID (get the ID from the Message History)
"android_sound": "soundfile", // optional. No file extension. If left empty,
// the device will produce a default system sound.
"android_sound_off": true, // optional. Enable/disable sound set by "android_sound" field
"android_icon": "icon.png", // optional.
"android_custom_icon": "URL.png", // optional. Full URL to the image file.
"android_banner": "URL.png", // optional. Full URL to the image file.
"android_badges": 5, // optional. Android application icon badge number.
// Use "+n" or "-n" to increment/decrement the badge value by n.
"android_gcm_ttl": 3600, // optional. Time to live parameter — maximum message lifespan in seconds.
"android_vibration": 0, // optional. Android force-vibration for high-priority pushes.
"android_led": "#rrggbb", // optional. LED hex color, device will do its best approximation.
"android_priority": -1, // optional. Sets the "importance" parameter for devices with
// Android 8.0 and higher, as well as the "priority" parameter
// for devices with Android 7.1 and lower. Establishes the
// interruption level of a notification channel or a particular
// notification. Valid values are -2, -1, 0, 1, 2.
"android_delivery_priority": "normal", // optional. "normal" or "high".
// Enables notification’s delivery when the
// device is in the power saving mode.
"android_ibc": "#RRGGBB", // optional. icon background color on Lollipop, #RRGGBB,
// #AARRGGBB, "red", "black", "yellow", etc.
"android_silent": 1, // optional. 0 or 1. Enable silent notification.
// Ignore sound and content
"android_group_id": "123", // optional. Identifier to group related notifications. Messages with
// the same thread ID will be grouped in
// the Notification Center.
"android_collapse_key": "promo" // optional. FCM collapse key. Notifications with the same
// collapse key replace each other while the device is offline.
}]
}
}

Huawei 매개변수

Huawei
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"huawei_android_header": { // optional. Object OR string. Notification title
"en": "header"
},
"huawei_android_content": { // optional. Object OR string. Notification content
"en": "content"
},
"huawei_android_badges": true, // optional.
"huawei_android_silent": 0, // optional. 0 or 1. Enable silent notification.
// Ignore sound and content
"huawei_android_icon": "URL.png", // optional.
"huawei_android_led": "#FF0011", // optional. LED hex color, device will do its best approximation
"huawei_android_vibration": 1, // optional. Huawei force-vibration for high-priority pushes
"huawei_android_sound": "sound.wav", // optional. If left empty, the device will produce
// a default system sound
"huawei_android_sound_off": true, // optional. Enable/disable sound set by
// "huawei_android_sound" field
"huawei_android_custom_icon": "URL.png", // optional
"huawei_android_gcm_ttl": 2400, // optional. Time to live parameter - maximum
// message lifespan in seconds
"huawei_android_banner": "URL.png", // optional. Full path URL to the image file
"huawei_android_root_params": { // optional. Custom key-value object.
"key": "value" // Root-level parameters for Huawei payload recipients.
},
"huawei_android_priority": 0, // optional. Valid values: -2, -1, 0, 1, 2
"huawei_android_ibc": "#0011AA", // optional. Icon background color on Lollipop
"huawei_android_lockscreen": 1, // optional
"huawei_android_delivery_priority": "normal", // optional. "normal" or "high". Enables notification
// delivery in power saving mode
"huawei_android_group_id": "group_id" // optional. Identifier to group related notifications
}]
}
}

Safari 매개변수

Anchor link to
Safari
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"safari_url_args": [ // required, but the value may be empty
"firstArgument",
"secondArgument"
],
"safari_title": { // optional. Object OR string. Title of the notification.
"en": "content"
},
"safari_content": { // optional. Object OR string. Content of the notification.
"en": "content"
},
"safari_action": "Click here", // optional.
"safari_ttl": 3600 // optional. Time to live parameter — the maximum
// lifespan of a message in seconds.
}]
}
}

Chrome 매개변수

Anchor link to
Chrome
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"chrome_title": { // optional. Object OR string. You can specify the header
"en": "title" // of the message in this parameter.
},
"chrome_content": { // optional. Object OR string. You can specify the content
"en": "content" // of the message in this parameter.
},
"chrome_icon": "URL.png", // optional. Full URL to the icon or extension resources file path
"chrome_gcm_ttl": 3600, // optional. Time to live parameter – maximum message lifespan in seconds.
"chrome_duration": 20, // optional. max 50 seconds. Changes chrome push display time.
// Set to 0 to display push until user interacts with it.
"chrome_image": "image_URL", // optional. URL to large image.
"chrome_root_params": { // optional. Set parameters specific to messages sent to Chrome.
"key": "value"
},
"chrome_button_text1": "text1", // optional
"chrome_button_url1": "button1_URL", // optional. Ignored if chrome_button_text1 is not set.
"chrome_button_text2": "text2", // optional
"chrome_button_url2": "button2_url" // optional. Ignored if chrome_button_text2 is not set.
}]
}
}

Firefox 매개변수

Anchor link to
Firefox
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"firefox_title": { // optional. Object OR string. You can specify message header here.
"en": "title"
},
"firefox_content": { // optional. Object OR string. You can specify message content here.
"en": "content"
},
"firefox_icon": "URL.png", // optional. Full path URL to the icon or path to the
// file in extension resources.
"firefox_root_params": { // optional. Set parameters specific to messages sent to Firefox.
"key": "value"
}
}]
}
}

Amazon 매개변수

Anchor link to
Amazon
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"adm_header": { // optional. Object OR string. You can specify message header here.
"en": "header"
},
"adm_content": { // optional. Object OR string. You can specify message content here.
"en": "content"
},
"adm_root_params": { // optional. Custom key-value object
"key": "value"
},
"adm_sound": "push.mp3", // optional.
"adm_sound_off": true, // optional. Enable/disable sound set by "adm_sound" field
"adm_icon": "icon.png", // optional. Full URL to the icon.
"adm_custom_icon": "URL.png", // optional.
"adm_banner": "URL.png", // optional.
"adm_ttl": 3600, // optional. Time to live parameter — the maximum message
// lifespan in seconds.
"adm_priority": -1 // optional. Priority of the push in Amazon push drawer,
// valid values are -2, -1, 0, 1 and 2.
}]
}
}

Mac OS X 매개변수

Anchor link to
Mac OS X
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"mac_title": { // optional. Object OR string. Adds Title for push notification.
"en": "title"
},
"mac_subtitle": { // optional. Adds subtitle for push notification.
"en": "subtitle"
},
"mac_content": { // optional. Adds content for push notification.
"en": "content"
},
"mac_badges": 3, // optional.
"mac_sound": "sound.caf", // optional.
"mac_sound_off": true, // optional. Enable/disable sound set by "mac_sound" field
"mac_root_params": { // optional.
"content-available": 1
},
"mac_ttl": 3600 // optional. Time to live parameter — maximum message lifespan in seconds.
}]
}
}

Windows 매개변수

Anchor link to
Windows
{
"request": {
"application": "12345-67891", // required. Pushwoosh application code
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"notifications": [{
"wns_content": { // required. Content (XML or raw) of notification encoded in MIME's base64
// in form of Object OR String
"en": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9ImF2YWlsYWJsZSIvPg==",
"de": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48YmFkZ2UgdmFsdWU9Im5ld01lc3NhZ2UiLz4="
},
"wns_type": "Badge", // optional. 'Tile' | 'Toast' | 'Badge' | 'Raw'
"wns_tag": "myTag", // optional. Used in Tile replacement policy.
// An alphanumeric string of no more than 16 characters.
"wns_cache": 1, // optional. (1|0) Translates into X-WNS-Cache-Policy value.
"wns_ttl": 600 // optional. Expiration time for notification in seconds.
}]
}
}

응답:

HTTP 상태 코드status_code설명
200200메시지가 성공적으로 생성되었습니다
200210인수 오류입니다. 자세한 내용은 status_message를 참조하세요
400N/A잘못된 형식의 요청 문자열
500500내부 오류

API 메시징 추적

Anchor link to

로드 밸런싱을 위해, 저희는 “devices” 매개변수가 10개 미만의 기기를 포함하는 배열로 API를 통해 전송된 메시지를 저장하지 않습니다. 이로 인해 이러한 메시지는 메시지 기록에 표시되지 않습니다.

테스트 단계에서 푸시 보고서를 보려면 API 메시징 추적을 사용하세요. 이 옵션을 ON으로 설정하면 _1시간 동안 이 제한을 재정의하고 이러한 푸시를 메시지 기록에 저장_할 수 있습니다. API 메시징 추적은 1시간 후에 자동으로 OFF됩니다.

API 메시징 추적은 메시지 기록 페이지의 오른쪽 상단에 있는 API 메시징 추적 시작을 클릭하여 활성화할 수 있습니다.

태그 조건

Anchor link to

각 태그 조건은 [tagName, operator, operand]와 같은 배열입니다. 여기서

  • tagName: 태그 이름
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN” | “NOTSET” | “ANY”
  • operand: string | integer | array | date

연산자 설명

Anchor link to
  • EQ: 태그 값이 피연산자와 같습니다;
  • IN: 태그 값이 피연산자와 교차합니다 (피연산자는 항상 배열이어야 합니다);
  • NOTEQ: 태그 값이 피연산자와 같지 않습니다;
  • NOTIN: 태그 값이 피연산자와 교차하지 않습니다 (피연산자는 항상 배열이어야 합니다);
  • GTE: 태그 값이 피연산자보다 크거나 같습니다;
  • LTE: 태그 값이 피연산자보다 작거나 같습니다;
  • BETWEEN: 태그 값이 최소 피연산자 값보다 크거나 같고 최대 피연산자 값보다 작거나 같습니다 (피연산자는 항상 배열이어야 합니다);
  • NOTSET: 태그가 설정되지 않았습니다. 피연산자는 고려되지 않습니다;
  • ANY: 태그에 어떤 값이든 있습니다. 피연산자는 고려되지 않습니다.

문자열 태그

Anchor link to

유효한 연산자: EQ, IN, NOTEQ, NOTIN, NOTSET, ANY
유효한 피연산자:

  • EQ, NOTEQ: 피연산자는 문자열이어야 합니다;
  • IN, NOTIN: 피연산자는 ["value 1", "value 2", "value N"]와 같은 문자열 배열이어야 합니다;
  • NOTSET: 태그가 설정되지 않았습니다. 피연산자는 고려되지 않습니다;
  • ANY: 태그에 어떤 값이든 있습니다. 피연산자는 고려되지 않습니다.

정수 태그

Anchor link to

유효한 연산자: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
유효한 피연산자:

  • EQ, NOTEQ, GTE, LTE: 피연산자는 정수여야 합니다;
  • IN, NOTIN: 피연산자는 [value 1, value 2, value N]와 같은 정수 배열이어야 합니다;
  • BETWEEN: 피연산자는 [min_value, max_value]와 같은 정수 배열이어야 합니다;
  • NOTSET: 태그가 설정되지 않았습니다. 피연산자는 고려되지 않습니다;
  • ANY: 태그에 어떤 값이든 있습니다. 피연산자는 고려되지 않습니다.

날짜 태그

Anchor link to

유효한 연산자: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE, NOTSET, ANY
유효한 피연산자:

  • "YYYY-MM-DD 00:00" (문자열)
  • 유닉스 타임스탬프 1234567890 (정수)
  • "N days ago" (문자열) 연산자 EQ, BETWEEN, GTE, LTE용

불리언 태그

Anchor link to

유효한 연산자: EQ, NOTSET, ANY
유효한 피연산자: 0, 1, true, false

목록 태그

Anchor link to

유효한 연산자: IN, NOTIN, NOTSET, ANY
유효한 피연산자: 피연산자는 ["value 1", "value 2", "value N"]와 같은 문자열 배열이어야 합니다.

/createMessage 스니펫

Anchor link to

샘플 /createMessage 요청:

#!/bin/bash
#Usage
if [ ! -n "$1" ] || [ ! -n "$2" ]
then
echo "`basename $0` usage: api_token appid message";
exit 1;
fi;
MESSAGE="$3";
if [ -z "$3" ]
then
MESSAGE='One push to rule them all!'
fi;
echo -e "Response:"
curl --data-binary "
{\"request\":
{\"application\":\"$2\",
\"auth\":\"$1\",
\"notifications\":
[{
\"send_date\": \"now\",
\"content\": \"$MESSAGE\"
}]
}
}" \
-H "Content-type: application/json" \
"https://api.pushwoosh.com/json/1.3/createMessage"
echo "";
exit 0;

deleteMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/deleteMessage

예약된 메시지를 삭제합니다.

요청 본문

Anchor link to
이름유형설명
auth*stringPushwoosh Control Panel의 API 액세스 토큰입니다.
message*string/createMessage 요청에서 얻은 메시지 코드입니다.
{
"status_code": 200,
"status_message": "OK"
}
예시
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. Message code obtained in /createMessage
}
}

상태 코드:

HTTP 상태 코드status_code설명
200200메시지가 성공적으로 삭제되었습니다
200210인수 오류입니다. 자세한 내용은 status_message를 참조하세요
400N/A잘못된 형식의 요청 문자열
500500내부 오류
<?php
// see https://gomoob.github.io/php-pushwoosh/delete-message.html
use Gomoob\Pushwoosh\Model\Request\DeleteMessageRequest;
// creates request instance
$request = DeleteMessageRequest::create()->setMessage('MESSAGE_CODE');
// call '/deleteMessage' Web Service
$response = $pushwoosh->deleteMessage($request);
if($response->isOk()) {
print 'Great, my message has been deleted !';
} else {
print 'Oups, the deletion failed :-(';
print 'Status code : ' . $response->getStatusCode();
print 'Status message : ' . $response->getStatusMessage();
}

getMessageDetails

Anchor link to

POST https://api.pushwoosh.com/json/1.3/getMessageDetails

메시지 세부 정보를 검색합니다.

요청 본문

Anchor link to
이름유형설명
auth*stringPushwoosh Control Panel의 API 액세스 토큰입니다.
message*string메시지 코드 또는 메시지 ID입니다.
{
"status_code": 200,
"status_message": "OK",
"response": {
"message": {
"id": 2068991743,
"created": "2016-09-14 17:19:42",
"send_date": "2016-09-14 17:19:41",
"status": "done",
"content": {
"en": "Hello {Name|CapitalizeFirst|friend}! 🚀"
},
"platforms": "[1]",
"ignore_user_timezone": "1",
"code": "XXXX-92B4C3C5-A7F5EF70",
"data": {
"key": "value"
}
}
}
}
예시
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. message code or message ID
}
}

createTargetedMessage 더 이상 사용되지 않음

Anchor link to

POST https://api.pushwoosh.com/json/1.3/createTargetedMessage

새로운 대상 푸시 알림을 생성합니다.

요청 본문

Anchor link to
이름유형설명
auth*stringPushwoosh Control Panel의 API 액세스 토큰입니다.
devices_filter*string아래 설명을 참조하세요.
send_date*stringYYYY-MM-DD HH:mm 또는 ‘now’입니다.
ignore_user_timezoneboolean무시하면 “send_date”에 대해 UTC-0이 기본값입니다.
timezonestring무시하면 “send_date”에 대해 UTC-0이 기본값입니다.
campaignstring이 푸시 메시지를 할당하려는 캠페인 코드입니다.
content*string알림 내용입니다. 자세한 내용은 요청 예시를 참조하세요.
transactionIdstring네트워크 문제 발생 시 메시지 중복을 방지하기 위한 고유 메시지 식별자입니다. Pushwoosh 측에 5분 동안 저장됩니다.
linkstring사용자가 푸시 메시지를 열 때 열리는 링크입니다.
minimize_linkinteger0 - 최소화 안 함, 2 - bit.ly. 기본값 = 2.
dataobjectJSON 문자열 또는 JSON 객체입니다. 페이로드에서 “u” 매개변수로 전달됩니다(JSON 문자열로 변환됨).
presetstring프리셋 코드입니다.
send_rateinteger조절. 유효한 값은 초당 100에서 1000 푸시입니다.
inbox_datestring받은 편지함에서 메시지를 제거할 시기를 지정합니다.
inbox_imagestring받은 편지함의 메시지 옆에 표시될 이미지의 URL입니다.
{
"status_code": 200,
"status_message": "OK",
"response": {
"messageCode": "97B0-C7473871-2FBDFDC6"
}
}

더 많은 응답 예시:

{
"status_code": 210,
"status_message": "Errors occurred while compiling filter",
"response": {
"errors": [{
"message": "Invalid tag set specification. \")\" expected.",
"type": "syntax"
}]
}
}
예시
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"devices_filter": "A(\"XXXXX-XXXXX\") * T(\"City\", EQ, \"Name\")", // required. Syntax explained below
"send_date": "now", // optional. YYYY-MM-DD HH:mm OR 'now'
"ignore_user_timezone": true, // optional.
"timezone": "America/New_York", // optional. If ignored UTC-0 is default for "send_date".
// More info https://php.net/manual/timezones.php.
"campaign": "CAMPAIGN_CODE", // optional. Campaign code to which you want to assign this push message.
"content": { // optional. Object OR string. Use "wns_content" instead for Windows.
"en": "English",
"de": "Deutsch"
},
"transactionId": "unique UUID", // optional. Unique message identifier to prevent duplicating messages
// in case of network problems. Stored on the side of
// Pushwoosh for 5 minutes.
"rich_media": "XXXXX-XXXXX", // optional. Copy the Rich Media code from the URL bar of the
// Rich Media editor page in Pushwoosh Control Panel.
"link": "https://google.com", // optional. For deeplinks add "minimize_link": 0
"minimize_link": 0, // optional. 0 — do not minimize, 2 — bitly. Default = 2.
// Google URL shortener is disabled since March 30, 2019.
// Please note that shorteners have restrictions
// on a number of calls.
"data": { // optional. JSON string or JSON object.
"key": "value" // Will be passed as "u" parameter in the payload
}, // (converted to JSON string).
"preset": "XXXXX-XXXXX", // optional. Push Preset Code from your Control Panel.
"send_rate": 100, // optional. Throttling. Valid values are from 100 to 1000 pushes/second.
"dynamic_content_placeholders": { // optional. Placeholders for dynamic content instead of device tags.
"firstname": "John",
"lastname": "Doe"
},
// To save the message to the Inbox via API, use "inbox_date" or "inbox_image".
// The message is saved when at least one of these parameters is used.
"inbox_image": "Inbox image URL", // optional. The image to be shown near the message.
"inbox_date": "2017-02-02" // optional. Specify when to remove a message from the Inbox.
// Message will be removed from Inbox at 00:00:01 UTC of
// the date specified, so the previous date is the last
// day a user can see the message in their Inbox.
// If not specified, the default removal date is the next
// day after the send date.
}
}

기본은 매우 간단합니다. 모든 필터는 엔티티의 집합에 대해 수행됩니다.

집합은 다음과 같이 정의됩니다:

1. 특정 앱을 구독하는 기기 (A);
2. 지정된 태그 값 (T) 또는 앱별 태그 값 (AT)과 일치하는 기기;\

위 목록에 따라 몇 가지 샘플로 시도해 보겠습니다.

앱 구독자 타겟팅

Anchor link to

“A” 필터는 특정 앱을 구독하는 기기 집합을 정의합니다:

A("XXXXX-XXXXX", ["iOS", "Android", "OsX", "Windows", "Amazon", "Safari", "Chrome", "Firefox"])

여기서

  • “XXXXX-XXXXX” – Pushwoosh 애플리케이션 코드
  • [“iOS”, “Android”, …] – 대상 플랫폼의 배열입니다. 생략하면 메시지는 이 앱에서 사용 가능한 모든 플랫폼으로 전송됩니다.

태그 값으로 필터링

Anchor link to

“T” 필터는 지정된 태그 값이 할당된 기기 집합을 정의합니다.

T(\"Age\", IN, [17,20])

“age” 태그가 17, 18, 19, 20 중 하나의 값으로 설정된 기기 집합을 정의합니다.

태그 유형 및 연산자

Anchor link to

이해해야 할 매우 중요한 점은 태그가 앱 간에 공유된다는 것이며, 이는 특정 앱에 얽매이지 않고 대상 사용자를 세분화하고 필터링하는 매우 강력한 도구를 제공한다는 것입니다.

태그는 문자열, 정수, 목록의 세 가지 유형 중 하나일 수 있습니다. 태그 유형은 특정 태그에 사용할 수 있는 연산자를 정의합니다.

문자열 태그

Anchor link to

적용 가능한 연산자:

  • EQ – 지정된 태그 값을 가진 기기를 대상으로 합니다
  • IN – 지정된 태그 값 중 하나를 가진 기기를 대상으로 합니다
  • NOTIN – 지정된 태그 값이 없는 기기를 대상으로 합니다
  • NOTEQ – 지정된 값과 같지 않은 태그 값을 가진 기기를 대상으로 합니다
  • NOTSET – 지정된 태그에 대한 값이 없는 기기를 대상으로 합니다
  • ANY – 지정된 태그에 대해 설정된 값이 있는 기기를 대상으로 합니다

예시:

T (\"Age\", EQ, 30) – 30세 사용자를 필터링합니다

T (\"favorite_color\", IN, [\"red\",\"green\",\"blue\"]) – 좋아하는 색으로 빨간색, 녹색 또는 파란색을 선택한 사용자를 필터링합니다.

T (\"Name", NOTSET, \"\") – 이름 태그에 대한 값이 없는 기기를 대상으로 합니다.

문자열 태그와 함께 숫자 값을 사용할 수 있지만 이러한 값은 문자열로 변환됩니다.

정수 태그

Anchor link to

적용 가능한 연산자:

  • GTE – 지정된 값보다 크거나 같습니다
  • LTE– 지정된 값보다 작거나 같습니다
  • EQ – 지정된 값과 같습니다
  • BETWEEN – 지정된 최소값과 최대값 사이입니다
  • IN – 지정된 값 중 하나입니다
  • NOTIN – 기기에 지정된 값이 할당되지 않았습니다
  • NOTEQ – 지정된 값과 같지 않은 태그 값을 가진 기기
  • NOTSET – 지정된 태그에 대한 값이 없는 기기
  • ANY – 지정된 태그에 대해 설정된 값이 있는 기기

예시:

T (\"Level\", EQ, 14) – 14 레벨의 사용자만 필터링합니다.

T (\"Level\", BETWEEN, [1,5) – 1, 2, 3, 4, 5 레벨의 사용자를 필터링합니다.

T (\"Level", GTE, 29) – 최소 29 레벨에 도달한 사용자를 대상으로 합니다.

목록 태그

Anchor link to

적용 가능한 연산자:

  • IN – 지정된 태그 값 중 하나를 가진 기기

예시: T("Category", IN, ["breaking_news","business","politics"])

날짜 태그

Anchor link to

적용 가능한 연산자:

  • GTE – 지정된 값보다 크거나 같습니다
  • LTE– 지정된 값보다 작거나 같습니다
  • EQ – 지정된 값과 같습니다
  • BETWEEN – 지정된 최소값과 최대값 사이입니다
  • NOTEQ – 지정된 값과 같지 않은 태그 값을 가진 기기
  • NOTSET – 지정된 태그에 대한 값이 없는 기기
  • ANY – 지정된 태그에 대해 설정된 값이 있는 기기

예시:

AT("7777D-322A7","Last Application Open", BETWEEN, ["2022-02-28", "2022-03-02"])

AT("7777D-322A7","Last Application Open", GTE, "90 days ago")

  • “+” – 두 집합을 결합합니다 (OR과 같음)
  • “*” – 두 집합을 교차합니다 (AND와 같음)
  • “\” – 한 집합에서 다른 집합을 뺍니다 (NOT과 같음)

모든 연산은 왼쪽 결합입니다. ”+“와 ”*“는 동일한 우선 순위를 갖습니다. ""는 더 높은 우선 순위를 갖습니다. 괄호를 사용하여 계산의 우선 순위를 정의할 수 있습니다.

“\” 연산은 교환 법칙이 성립하지 않습니다. A("12345-12345") \ A("67890-67890")A("67890-67890") \ A("12345-12345")와 같지 않습니다.

getPushHistory 더 이상 사용되지 않음

Anchor link to

POST https://api.pushwoosh.com/json/1.3/getPushHistory

푸시 세부 정보가 포함된 메시지 기록을 가져옵니다.

요청 본문

Anchor link to
이름유형설명
auth*stringPushwoosh Control Panel의 API 액세스 토큰입니다.
limitMessagesinteger응답의 메시지 수를 제한합니다. 가능한 값은 10에서 1000까지입니다.
sourcestring푸시 기록 소스입니다. null 또는 “CP”, “API”, “GeoZone”, “RSS”, “AutoPush”, “A/B Test”일 수 있습니다.
searchBystring검색할 수 있는 값입니다. null 또는 “notificationID”, “notificationCode”, “applicationCode”, “campaignCode”일 수 있습니다.
valuestring”searchBy” 필드에 따라 설정된 검색 값입니다.
lastNotificationIDstring페이지네이션에 사용됩니다. 이전 /getPushHistory 호출의 마지막 messageId입니다. 자세한 내용은 아래를 참조하세요.
{
"status_code": 200,
"status_message": "OK",
"response": {
"rows": [{
"id": 10191611434,
"code": "8071-07AD1171-77238AD1",
"createDate": "2020-09-14 12:26:21",
"sendDate": "2020-09-14 12:26:21",
"content": {
"en": "Hello!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": "E3A64-A5F3C",
"filter_conditions": "#In-app Purchase(≠0)",
"filter_name": "Purchased something",
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": null,
"open": {
"C90C0-0E786": {
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"IOS": 1
}
},
"ctr": {
"C90C0-0E786": 0
}
}, {
"id": 10191609202,
"code": "41CA-83F8E0D7-7A63822B",
"createDate": "2020-09-14 12:25:55",
"sendDate": "2020-09-14 12:25:55",
"content": {
"en": "Hi!"
},
"url": null,
"ios_title": null,
"ios_subtitle": null,
"ios_root_params": null,
"android_header": null,
"android_root_params": null,
"conditions": null,
"conditions_operator": "AND",
"filter_code": null,
"filter_conditions": null,
"filter_name": null,
"geozone": null,
"campaignId": "",
"campaignName": "",
"subscription_segments": {
"2D732-BB981": "News"
},
"open": {
"C90C0-0E786": {
"CHROME": 0,
"IOS": 0
}
},
"sent": {
"C90C0-0E786": {
"CHROME": 1,
"IOS": 2
}
},
"ctr": {
"C90C0-0E786": 0
}
}]
}
}
예시
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"source": null, // optional. Possible values are null, "CP", "API", "GeoZone",
// "RSS", "AutoPush", "A/B Test"
"searchBy": "applicationCode", // optional. Possible values are "", "notificationID",
// "notificationCode", "applicationCode", "campaignCode"
"value": "C8717-703F2", // optional. Search value set according to the "searchBy" field.
"lastNotificationID": 0, // optional. Used for pagination. Last messageId from the
// previous /getPushHistory call. See details below.
"limitMessages": 1000 // optional. Possible value from 10 to 1000.
}
}

이 메서드는 메시지 ID별로 정렬된 계정의 1000개 메시지를 반환합니다. 두 번째 페이지를 얻으려면 이전 응답의 마지막 메시지 ID를 lastNotificationId 매개변수에 지정하세요.

응답 데이터 유형

Anchor link to
id -- int | 0
code -- string
createDate -- string (date: %Y-%m-%d %H:%M:%S)
sendDate -- string (date: %Y-%m-%d %H:%M:%S)
content -- array ( dict {lang: value} | list [])
title -- array ( dict {lang: value} | list [])
subtitle -- array ( dict {lang: value} | list [])
url -- string
ios_title -- string | array ( dict {lang: value} ) | null
ios_subtitle -- string | array ( dict {lang: value} ) | null
ios_root_params -- dict (JSON) | null
android_header -- string | array ( dict {lang: value} ) | null
android_root_params -- dict (JSON) | null
conditions -- list (JSON) | null
conditions_operator -- string | null
filter_code -- string | null
filter_name -- string | null
filter_conditions -- string | null
geozone -- string | null
campaignId -- string | ""
campaignName -- string | ""
subscription_segments (obsolete) -- list (JSON) | null
data -- dict (JSON) | null
open -- dict [dict [string: int]] | "" Example: 'open': {'AAAAA-BBBBB': {'IOS': 1, 'ANDROID': 1}}
sent -- dict [dict [string: int]] | "" Example: 'sent': {'AAAAA-BBBBB': {'IOS': 10, 'ANDROID': 10}}
ctr -- dict [string: int] | "" Example: {'AAAAA-BBBBB': 1}
errors -- dict [string: int] | "" Example: {'ANDROID': 1, 'IOS': 1}

cancelMessage

Anchor link to

POST https://api.pushwoosh.com/json/1.3/cancelMessage

예약된 메시지를 삭제합니다.

요청 본문

Anchor link to
이름유형설명
auth*stringPushwoosh Control Panel의 API 액세스 토큰입니다.
message*string/createMessage 응답에서 얻은 메시지 코드입니다.
{
"status_code":200,
"status_message":"OK"
}
예시
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required. API access token from Pushwoosh Control Panel
"message": "xxxx-xxxxxxx-xxxxxx" // required. The message code obtained in /createMessage response
}
}

상태 코드:

HTTP 상태 코드status_code설명
200200메시지가 성공적으로 취소되었습니다
200210인수 오류입니다. 자세한 내용은 status_message를 참조하세요.
400N/A잘못된 형식의 요청 문자열
500500내부 오류