PushizoDocs
API referansı

Kanallar

Kanallar — 3 işlem (GET /v1/apps/{appId}/channels, PUT /v1/apps/{appId}/channels/{channel}, POST /v1/apps/{appId}/channels/{channel}/validate). OpenAPI 3.1.0 sözleşmesinden üretilir.

APNs, FCM, HMS, Web Push, e-posta ve SMS kanal yapılandırması; gizli alanlar şifreli saklanır ve yanıtlarda dönmez. validate sağlayıcıyla gerçek bağlantı testi yapar.

Taban adres: https://api.pushizo.com · Etiket: channels · Etkileşimli belge (Scalar)

İşlemler

YöntemYolİşlem
GET/v1/apps/{appId}/channelsKanal yapılandırmaları
PUT/v1/apps/{appId}/channels/{channel}Kimlik bilgisi yükle (APNs p8, FCM servis hesabı, VAPID, mock)
POST/v1/apps/{appId}/channels/{channel}/validateSağlayıcıya test bağlantısı

Ayrıntılar

Kanal yapılandırmaları

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ChannelList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
data[].providerenum | nullEvet
data[].statusenumEvetDeğerler: "unconfigured", "active", "invalid", "suspended"
data[].configobjectEvet
data[].config.auth_typeenumHayırDeğerler: "token", "certificate"
data[].config.certificate_environmentenumHayırDeğerler: "sandbox", "production", "universal"
data[].config.certificate_subjectstringHayır
data[].config.certificate_expires_atstringHayır
data[].config.key_idstringHayır
data[].config.team_idstringHayır
data[].config.bundle_idstringHayır
data[].config.environmentenumHayırDeğerler: "sandbox", "production"
data[].config.project_idstringHayır
data[].config.client_emailstringHayır
data[].config.hms_app_idstringHayır
data[].config.high_prioritybooleanHayır
data[].config.subjectstringHayır
data[].config.vapid_public_keystringHayır
data[].config.site_urlstringHayır
data[].config.from_addressstringHayır
data[].config.from_namestringHayır
data[].config.reply_tostringHayır
data[].config.dkim_selectorstringHayır
data[].config.postal_addressstringHayır
data[].config.hoststringHayır
data[].config.portintegerHayır
data[].config.securebooleanHayır
data[].config.usernamestringHayır
data[].config.regionstringHayır
data[].config.access_key_idstringHayır
data[].config.configuration_setstringHayır
data[].config.account_sidstringHayır
data[].config.from_numberstringHayır
data[].config.messaging_service_sidstringHayır
data[].config.usercodestringHayır
data[].config.msgheaderstringHayır
data[].config.iys_filterenumHayırDeğerler: "0", "11", "12"
data[].config.waba_idstringHayır
data[].config.phone_number_idstringHayır
data[].config.graph_api_versionstringHayır
data[].config.display_phone_numberstringHayır
data[].config.verified_namestringHayır
data[].config.rbm_agent_idstringHayır
data[].config.content_sidstringHayır
data[].config.sms_fallbackbooleanHayır
data[].has_secretbooleanEvet
data[].has_hookbooleanEvet
data[].last_validated_atstring | nullEvet
data[].last_errorstring | nullEvet
data[].updated_atstring | nullEvet
data[].suspended_reasonstring | nullEvet
data[].dns_checkobject | nullEvet

Örnek yanıt:

{
  "data": [
    {
      "channel": "ios_push",
      "status": "unconfigured",
      "provider": "apns",
      "config": {
        "auth_type": "token",
        "certificate_environment": "sandbox"
      },
      "has_secret": true,
      "has_hook": true,
      "last_validated_at": "örnek",
      "last_error": "örnek",
      "updated_at": "örnek",
      "suspended_reason": "örnek",
      "dns_check": {
        "domain": "örnek",
        "checked_at": "örnek",
        "spf": {
          "ok": true,
          "record": "örnek",
          "expected": "örnek"
        },
        "dkim": {
          "ok": true,
          "selector": "örnek",
          "record": "örnek",
          "expected": "örnek"
        },
        "dmarc": {
          "ok": true,
          "record": "örnek",
          "expected": "örnek"
        },
        "issues": [
          "örnek"
        ]
      }
    }
  ]
}

Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).

Örnekler

curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/channels" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Kimlik bilgisi yükle (APNs p8, FCM servis hesabı, VAPID, mock)

PUT/v1/apps/{appId}/channels/{channel}Dene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
channelyolstringEvet"web_push"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Tür: object

Örnek:

{
  "provider": "apns",
  "key_id": "key_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "team_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "bundle_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "environment": "sandbox",
  "p8": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Yanıtlar

200 — Başarılı.

Şema: ChannelConfig

AlanTürZorunluAçıklama
channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
providerenum | nullEvet
statusenumEvetDeğerler: "unconfigured", "active", "invalid", "suspended"
configobjectEvet
config.auth_typeenumHayırDeğerler: "token", "certificate"
config.certificate_environmentenumHayırDeğerler: "sandbox", "production", "universal"
config.certificate_subjectstringHayır
config.certificate_expires_atstringHayır
config.key_idstringHayır
config.team_idstringHayır
config.bundle_idstringHayır
config.environmentenumHayırDeğerler: "sandbox", "production"
config.project_idstringHayır
config.client_emailstringHayır
config.hms_app_idstringHayır
config.high_prioritybooleanHayır
config.subjectstringHayır
config.vapid_public_keystringHayır
config.site_urlstringHayır
config.from_addressstringHayır
config.from_namestringHayır
config.reply_tostringHayır
config.dkim_selectorstringHayır
config.postal_addressstringHayır
config.hoststringHayır
config.portintegerHayır
config.securebooleanHayır
config.usernamestringHayır
config.regionstringHayır
config.access_key_idstringHayır
config.configuration_setstringHayır
config.account_sidstringHayır
config.from_numberstringHayır
config.messaging_service_sidstringHayır
config.usercodestringHayır
config.msgheaderstringHayır
config.iys_filterenumHayırDeğerler: "0", "11", "12"
config.waba_idstringHayır
config.phone_number_idstringHayır
config.graph_api_versionstringHayır
config.display_phone_numberstringHayır
config.verified_namestringHayır
config.rbm_agent_idstringHayır
config.content_sidstringHayır
config.sms_fallbackbooleanHayır
has_secretbooleanEvet
has_hookbooleanEvet
last_validated_atstring | nullEvet
last_errorstring | nullEvet
updated_atstring | nullEvet
suspended_reasonstring | nullEvet
dns_checkobject | nullEvet

Örnek yanıt:

{
  "channel": "ios_push",
  "status": "unconfigured",
  "provider": "apns",
  "config": {
    "auth_type": "token",
    "certificate_environment": "sandbox",
    "certificate_subject": "örnek",
    "certificate_expires_at": "örnek"
  },
  "has_secret": true,
  "has_hook": true,
  "last_validated_at": "örnek",
  "last_error": "örnek",
  "updated_at": "örnek",
  "suspended_reason": "örnek",
  "dns_check": {
    "domain": "örnek",
    "checked_at": "örnek",
    "spf": {
      "ok": true,
      "record": "örnek",
      "expected": "örnek"
    },
    "dkim": {
      "ok": true,
      "selector": "örnek",
      "record": "örnek",
      "expected": "örnek"
    },
    "dmarc": {
      "ok": true,
      "record": "örnek",
      "expected": "örnek"
    },
    "issues": [
      "örnek"
    ]
  }
}

Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).

Örnekler

curl -X PUT "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/channels/web_push" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "provider": "apns",
  "key_id": "key_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "team_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "bundle_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
  "environment": "sandbox",
  "p8": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}'

Sağlayıcıya test bağlantısı

POST/v1/apps/{appId}/channels/{channel}/validateDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
channelyolstringEvet"web_push"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ChannelValidation

AlanTürZorunluAçıklama
okbooleanEvet
kindenum | nullEvet
codestring | nullEvet
messagestring | nullEvet
detailsmap<string, any> | nullEvet
channelobjectEvet
channel.channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
channel.providerenum | nullEvet
channel.statusenumEvetDeğerler: "unconfigured", "active", "invalid", "suspended"
channel.configobjectEvet
channel.config.auth_typeenumHayırDeğerler: "token", "certificate"
channel.config.certificate_environmentenumHayırDeğerler: "sandbox", "production", "universal"
channel.config.certificate_subjectstringHayır
channel.config.certificate_expires_atstringHayır
channel.config.key_idstringHayır
channel.config.team_idstringHayır
channel.config.bundle_idstringHayır
channel.config.environmentenumHayırDeğerler: "sandbox", "production"
channel.config.project_idstringHayır
channel.config.client_emailstringHayır
channel.config.hms_app_idstringHayır
channel.config.high_prioritybooleanHayır
channel.config.subjectstringHayır
channel.config.vapid_public_keystringHayır
channel.config.site_urlstringHayır
channel.config.from_addressstringHayır
channel.config.from_namestringHayır
channel.config.reply_tostringHayır
channel.config.dkim_selectorstringHayır
channel.config.postal_addressstringHayır
channel.config.hoststringHayır
channel.config.portintegerHayır
channel.config.securebooleanHayır
channel.config.usernamestringHayır
channel.config.regionstringHayır
channel.config.access_key_idstringHayır
channel.config.configuration_setstringHayır
channel.config.account_sidstringHayır
channel.config.from_numberstringHayır
channel.config.messaging_service_sidstringHayır
channel.config.usercodestringHayır
channel.config.msgheaderstringHayır
channel.config.iys_filterenumHayırDeğerler: "0", "11", "12"
channel.config.waba_idstringHayır
channel.config.phone_number_idstringHayır
channel.config.graph_api_versionstringHayır
channel.config.display_phone_numberstringHayır
channel.config.verified_namestringHayır
channel.config.rbm_agent_idstringHayır
channel.config.content_sidstringHayır
channel.config.sms_fallbackbooleanHayır
channel.has_secretbooleanEvet
channel.has_hookbooleanEvet
channel.last_validated_atstring | nullEvet
channel.last_errorstring | nullEvet
channel.updated_atstring | nullEvet
channel.suspended_reasonstring | nullEvet
channel.dns_checkobject | nullEvet

Örnek yanıt:

{
  "channel": {
    "channel": "ios_push",
    "status": "unconfigured",
    "provider": "apns",
    "config": {
      "auth_type": "token",
      "certificate_environment": "sandbox"
    },
    "has_secret": true,
    "has_hook": true,
    "last_validated_at": "örnek",
    "last_error": "örnek",
    "updated_at": "örnek",
    "suspended_reason": "örnek",
    "dns_check": {
      "domain": "örnek",
      "checked_at": "örnek",
      "spf": {
        "ok": true,
        "record": "örnek",
        "expected": "örnek"
      },
      "dkim": {
        "ok": true,
        "selector": "örnek",
        "record": "örnek",
        "expected": "örnek"
      },
      "dmarc": {
        "ok": true,
        "record": "örnek",
        "expected": "örnek"
      },
      "issues": [
        "örnek"
      ]
    }
  },
  "ok": true,
  "kind": "auth",
  "code": "örnek",
  "message": "Takip bağlantısı içeride",
  "details": {
    "key": "örnek"
  }
}

Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).

Örnekler

curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/channels/web_push/validate" \
  -H "Authorization: Bearer $PUSHIZO_API_KEY"

Bu sayfada