Obaveštenja i saglasnosti
Vaša aplikacija odlučuje šta će reći kupcima; kupac odlučuje kako sme da bude kontaktiran. Ovi pozivi omogućavaju prijavljenom kupcu da vidi i menja svoju saglasnost za marketing, a vašoj mobilnoj aplikaciji da registruje uređaj koji prima push poruke.
Ko ih poziva#
Pozivi za saglasnosti i registracija uređaja odnose se na kupca prijavljenog u sesiji, i ni na koga drugog: id kupca u telu zahteva se zanemaruje. Traže token prijavljenog kupca u Authorization: Bearer; pogledajte Sesije i prijavu.
Kako saglasnost radi#
- Glavna saglasnost je jedan prekidač za sav marketing. Kad je isključena, nijedan kanal se ne koristi za marketing.
- Saglasnost po kanalu je precizira:
email,sms,pushiviber, svakigrantedilirevoked. Kanal koji kupac nikad nije podesio prati glavni prekidač. - Važeća je ona koja se računa: kanal sme da se koristi kad je glavni prekidač uključen i kanal odobren.
- Svaka promena se beleži sa izvorom, pa možete da pokažete kada je i kako saglasnost data. Promene iz ovih poziva imaju izvor
mobile_app.
Objekat saglasnosti#
Ono što svaki poziv za saglasnosti vraća u data.
| Polje | Opis |
|---|---|
| masterboolean | Glavna saglasnost za marketing. |
| channelsobject | Po jedan unos za svaki kanal, email, sms, push i viber. |
| channels.<channel>.statestring | granted ili revoked. granted kad ga kupac nikad nije podesio. |
| channels.<channel>.effectiveboolean | Da li kanal sada sme da se koristi za marketing. |
| channels.<channel>.source, changed_atmože biti null | Odakle i kada je kanal poslednji put promenjen. null kad nikad nije. |
| preferredobject | Kanal preko kog kupac želi da bude kontaktiran: notification_channel_id, i source, auto ili manual. |
| viber_subscribedboolean | Da li kupac prati vaš Viber kanal. |
| given_atdatetime · ISO 8601, UTC | Najnovija promena saglasnosti, ili trenutak registracije kupca ako od tada nije bilo promena. |
Čitanje i promena saglasnosti#
Tri poziva iza ekrana saglasnosti. Svaki vraća ceo objekat saglasnosti, pa ekran možete ponovo da iscrtate iz odgovora.
| Poziv | Opis |
|---|---|
| GET /customer/consents | Saglasnost kupca. |
| PUT /customer/consent | Postavlja jedan kanal. Telo: channel (email, sms, push ili viber) i state (granted ili revoked). Postavljanje kanala na stanje koje već ima ne menja ništa. |
| PUT /customer/consents/master | Postavlja glavnu saglasnost. Telo: state, granted ili revoked. |
Greške
| Status | Kada |
|---|---|
| 401 | Token ne pripada prijavljenom kupcu. |
| 422 | API.CustomerChannelConsents.CustomerRequired: sesija nema kupca. API.CustomerChannelConsents.InvalidChannel ili InvalidState: vrednost nije jedna od dozvoljenih; fields je imenuje. |
curl -X PUT "https://api.morffeus.com/api/v2/customer/consent" \ -H "Authorization: Bearer $SESSION_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "channel": "sms", "state": "revoked" }'
{
"data": {
"master": true,
"channels": {
"email": {
"state": "granted",
"effective": true,
"source": null,
"changed_at": null
},
"sms": {
"state": "revoked",
"effective": false,
"source": "mobile_app",
"changed_at": "2026-10-01T10:02:11"
},
"push": { … },
"viber": { … }
},
"preferred": { "notification_channel_id": null, "source": "auto" },
"viber_subscribed": false,
"given_at": "2026-10-01T10:02:11"
}
}
{
"errors": {
"CustomerChannelConsents": ["API.CustomerChannelConsents.InvalidChannel"],
"fields": { … }
}
}
Registracija uređaja za push#
Kaže nam koji push token dopire do prijavljenog kupca na ovom uređaju. Pozovite ga posle prijave i kad god provajder push obaveštenja da vašoj aplikaciji nov token. Uređaj je onaj koji je vaša aplikacija navela kad je pokrenula sesiju, a kupac je kupac sesije.
Parametri tela zahteva
| Parametar | Opis |
|---|---|
| notification_deviceobaveznoobject | Uređaj. |
| notification_device.messaging_tokenobaveznostring | Push token iz Firebase Cloud Messaging-a. |
| notification_device.notification_channel_idobaveznointeger | Push kanal: 3. |
| notification_device.device_type, device_vendor, mobile_info | Opcioni podaci o uređaju. |
Ponovno slanje istog push tokena menja uređaj umesto da doda nov, a starije kopije tog tokena za kupca se uklanjaju.
Vraća
data: uređaj onako kako je sačuvan.
POST /api/v2/session/firebase/token sa firebase_token umesto toga čuva push token na tokenu trenutne sesije. Odgovara sa 204, ili sa 422 i API.Tokens.Firebase.UnableToUpdate.
curl -X PUT "https://api.morffeus.com/api/v2/notification_device" \ -H "Authorization: Bearer $SESSION_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "notification_device": { "messaging_token": "fcm-token-from-the-device", "notification_channel_id": 3 } }'
Povezano#
- Sesije i prijava: token sesije koji ovi pozivi nose.
- Nalog i adrese: ostatak profila kupca.