Help Center Integrazzjoni tal-API Meta & Instagram

Integrazzjoni tal-API Meta & Instagram

Referenza għall-bini ta’ app Instagram fuq il-SMSBAT ChatHub Platform: awtentikazzjoni, Instagram Konversazzjonijiet diretti, kummenti fuq postijiet u Rukkelli, risposti għall-Istorja, webhooks u polling.

Sorsi

Din il-paġna tgħaqqad l-ispeċifikazzjoni interna tal-API Meta Comments mal-OpenAPI live definizzjonijiet fi https://chatapi.smsbat.com/swagger/v1/swagger.json u https://restapi.smsbat.com/swagger/v1/swagger.json. Fejn it-tnejn ma jaqblux, il id-differenza tissejjaħ inline u elenkata taħt Mistoqsijiet miftuħa.


1. URLs bażi

GħanURL
Chat API + Meta APIhttps://chatapi.smsbat.com
Swagger UI / OpenAPIhttps://chatapi.smsbat.com/index.html · …/swagger/v1/swagger.json
REST API (organizzazzjonijiet, URLs callback)https://restapi.smsbat.com
REST API Swaggerhttps://restapi.smsbat.com/swagger/v1/swagger.json
Panew tal-web tal-operaturhttps://chat.smsbat.com

2. Awtentikazzjoni

L-iskema ta’ awtorizzazzjoni tiddependi fuq il-grupp tal-endpoint. It-taħlit tagħhom huwa l-aktar kawża komuni ta’ 401.

GruppIntestatura
chatapi.smsbat.com/api/meta/* (postijiet, kummenti)X-Authorization-Key: <organization token>
chatapi.smsbat.com/api/chat/*, /api/company/*, /api/operator/*Authorization: Bearer <JWT>
restapi.smsbat.com/*X-Authorization-Key · Authorization: Bearer · Awtorizzazzjoni Bażika

It-token tal-organizzazzjoni għal X-Authorization-Key jinħareġ fil-panel taħt Profil. JWTs tal-kumpaniji u tal-operaturi ġejjin minn /api/company/get-token u /api/operator/get-token.

Diskrepanza

Id-dokument chatapi OpenAPI jiddikjara skema ta’ sigurtà waħda — Bearer — u japplikaha globalment. X-Authorization-Key mhu ddikjarat hemm xejn, għalkemm il-Meta intern Kummenti L-ispeċifikazzjoni tal-API isimha għal /api/meta/*. Huwa x’aktarx immaniġġjat minn middleware li mhux rifless fi Swagger. Ikkonferma empirikament qabel ma tibgħat.

2.1 Token tal-kumpanija

POST https://chatapi.smsbat.com/api/company/get-token
Content-Type: application/json

{ "login": "company_login", "password": "company_password" }

200 OK jirritorna sekwenza ta’ tokens vojta.

2.2 Organizzazzjonijiet

GET https://chatapi.smsbat.com/api/company/organization
Authorization: Bearer <company_token>
[ { "id": 24, "name": "My Instagram Store" } ]

2.3 Operaturi f’organizzazzjoni

GET https://chatapi.smsbat.com/api/operator?organizationId=24
Authorization: Bearer <company_token>
[
  {
    "id": 21,
    "name": "Jane Doe",
    "status": 0,
    "organization": { "id": 24, "name": "My Instagram Store" }
  }
]

Status tal-operatur: 0 Attiv, 1 Inattiv, 2 Imħassar.

2.4 Żid / issinkronizza l-operaturi

POST https://chatapi.smsbat.com/api/operator/synchronize
Authorization: Bearer <company_token>
Content-Type: application/json

[ { "organizationId": 24, "name": "John Operator" } ]

200 OK → [ { "id": 21, "status": 0, "name": "John Operator" } ]

2.5 Operatur JWT

POST https://chatapi.smsbat.com/api/operator/get-token
Authorization: Bearer <company_token>
Content-Type: application/json

{ "id": 21, "expiresAt": "2026-12-31T23:59:59.000Z" }

200 OK jirritorna l-JWT bħala string.

2.6 Ivvalida token tal-operatur

POST https://chatapi.smsbat.com/api/operator/validate-token
Authorization: Bearer <company_token>
Content-Type: application/json

"eyJhbGciOi..."
{
  "isValid": true,
  "operatorId": 21,
  "clientId": 0,
  "expiresAt": "2026-12-31T23:59:59.000Z",
  "error": null
}

Meta invalidu: { "isValid": false, "error": "Invalid token" }.

2.7 Inkorpora l-pannell taċ-chat tal-operatur

<script type="module" id="operator-chat-panel-script"
  src="https://widget.smsbat.com/operator-chat-panel/widget-script.js"
  token="YOUR_OPERATOR_JWT_TOKEN"></script>

Sistema esterna (CRM, ERP, websajt) tista’ tiftaħ konversazzjoni speċifika fiha https://chat.smsbat.com/. L-operatur huwa awtorizzat minn JWT mgħoddi bħala parametru ta’ mistoqsija.

https://chat.smsbat.com/?chat_raw_id=<chat_id>&token=<jwt>
https://chat.smsbat.com/?phone=<phone>&token=<jwt>
https://chat.smsbat.com/?from=<bm_id>&phone=<phone>&token=<jwt>
https://chat.smsbat.com/?source=7&from=<bm_id>&phone=<phone>&token=<jwt>
ParametruDeskrizzjoni
chat_raw_idChat ID
phoneNumru tat-telefon f’format internazzjonali
fromIdentifikatur tal-kont tal-marka / tan-negozju (bm_id)
sourceSors taċ-chat — 7 għal Instagram, ara §8.1
tokenOperatur JWT validu u mhux skadut b’aċċess għal chats

JWT invalidu jpoġġi lill-viżitatur fuq l-iskrin tal-login tal-pannell tal-operatur.


4. Instagram Konversazzjonijiet diretti

4.1 Elenka ċ-chats

GET https://chatapi.smsbat.com/api/chat/chats?source=7&page=1&per_page=20
Authorization: Bearer <token>

Note

Il-paġnar hawnhekk huwa per_page (snake_case). Taħt /api/meta/* u l-votazzjoni endpoint huwa perPage (camelCase). Dan mhuwiex typo — l-API juża t-tnejn.

Parametri tal-mistoqsija, kollha mhux obbligatorji:

ParametruTipDeskrizzjoni
sourceChatSource7 jirrestrinġi r-riżultati għal Instagram
entityIdintID tal-kont tan-negozju. Applikata biss flimkien ma’ source
instagram_user_idintID tal-utent Instagram fi ChatHub
facebook_user_idintID tal-utent ta’ Facebook fi ChatHub
page / per_pageintPaġnar, defaults 1 / 20
statusChatStatus[]Stat taċ-chat, li jista’ jiġi ripetut
searchstringTfittxija b’test liberu (isem, telefon, …)
organizationIdintID Organizzazzjoni
operatorIdint[]Iffiltra mill-operaturi assenjati
datestring[]Żewġ limiti: ?date=…&date=…
isChainboolIrritorna ċ-chats bħala ktajjen, li jġorru messaġġi minn chats preċedenti
isUnread, starMark, isOperator, isAIAgentboolFiltri addizzjonali
phone, email, contactId, clientId, tagIds, rate, sortedBy—Filtri oħra

200 OK jirritorna GetChatsResponse:

{
  "total": 1,
  "newMessagesCount": 2,
  "items": [
    {
      "id": 1867,
      "theme": null,
      "messSource": 7,
      "chatStatus": 1,
      "countUnread": 2,
      "metaUserId": "1585775752382460",
      "instaAccount": { "id": 12, "name": "my_instagram_shop", "photo": "https://..." },
      "instagramUser": { "id": 123, "name": "marianna_cat", "photo": "https://..." },
      "operator": { "id": 21, "name": "Jane", "photo": "https://..." },
      "client": { "id": 55, "name": "Marianna", "photo": null },
      "textLastMess": "Hello! Is this product available?",
      "timeLastMess": "2026-08-13T10:15:00Z",
      "authorLastMessage": 1,
      "messageStatus": 6,
      "isMedia": false,
      "phone": null,
      "organizationId": 1,
      "createdAt": "2026-08-13T10:14:00Z",
      "isStarred": false,
      "isBlocked": false,
      "tags": []
    }
  ]
}

L-oqsma li huma importanti għal app Instagram:

QasamTifsira
instaAccountIl-kont tan-negozju ta’ Instagram (il-ħanut). id huwa l-valur tal-filtru entityId; name huwa l-isem tal-kont minn Meta
instagramUserIl-klijent. name huwa l-manku ta’ Instagram, id huwa l-valur tal-filtru instagram_user_id
metaUserIdL-ID b’ambitu tal-klijent fuq in-naħa ta’ Meta (string)
messSource7 għal Instagram
phoneNormalment null għal Instagram — tużahiex bħala ċavetta

ChatDTO iġorr ukoll olxUser, promUser, waba, rozetkaUser, facebookAccount, facebookUser, viberAccount, tgBot, tgUser, viberBot, viberBotUser, widget, media, isConnectedAI, isPromo, rate, rateComment, closedBy, draft, lang, starMark, contactId, contactName, block, isInStopList, stopList, isSmsFallbackEnabled u taggedMessages.

4.2 Messaġġi taċ-chat

GET https://chatapi.smsbat.com/api/chat/chats/1867/messages?isChain=false
Authorization: Bearer <token>

200 OK jirritorna firxa ta’ ChatMessageDTO:

[
  {
    "id": 9928,
    "chatId": 1867,
    "message": "Hi! Do you have size M in stock?",
    "messageTranslation": null,
    "phone": null,
    "author": 1,
    "source": 7,
    "media": null,
    "replyTo": null,
    "status": 6,
    "date": "2026-08-13T10:14:00Z",
    "operator": null,
    "client": { "id": 123, "name": "marianna_cat", "photo": "https://..." },
    "messageType": 0,
    "isInternal": false,
    "isBroadcast": false,
    "starMark": false,
    "referralGuid": null,
    "postId": null,
    "isConnectedAI": false,
    "organizationId": 1,
    "countUnreadMessages": 0
  }
]

postId jiġi popolat meta l-messaġġ ikun relatat ma’ post jew Storja ta’ Instagram — għaddih dritt lura bħala id / postId għall-Meta API. media huwa ChatMediaDTO: { name, format, type, uri, raw, length, isUploaded }.

4.3 Ibgħat messaġġ (JSON)

POST https://chatapi.smsbat.com/api/chat/1867/message
Authorization: Bearer <token>
Content-Type: application/json

Korp — SendChatMessageDTO:

{
  "textMessage": "Hello! Yes, size M is available.",
  "author": 0,
  "isInternal": false,
  "replyToMessageId": 9928,
  "appGuid": "550e8400-e29b-41d4-a716-446655440000",
  "media": {
    "name": "item.jpg",
    "format": "image/jpeg",
    "dataBase64": "/9j/4AAQSkZJRg...",
    "type": 1
  }
}
QasamTipDeskrizzjoni
textMessagestring?Test tal-messaġġ. Jista’ jkun vojt meta media ikun preżenti
authorAuthorMessage?0 operatur, 1 klijent
isInternalbool?true timmarka nota interna li mhix ikkunsinnata lill-klijent
replyToMessageIdint?ID tal-messaġġ li qed jitwieġeb
appGuiduuid?GUID ta’ referenza
mediaMediaDTO?{ name, format, dataBase64, thumbnail, duration, type }

200 OK → { "id": 9930, "messageStatus": 0 }

GUID ta’ riferiment jista’ wkoll jiġi mgħoddi fil-mogħdija: POST /api/chat/{chatId}/{referralGuid}/message (bl-istess mod …/message/v1, …/message/v2).

4.4 Ibgħat fajl jew vidjo (b’ħafna partijiet, v2)

POST https://chatapi.smsbat.com/api/chat/1867/message/v2
Authorization: Bearer <token>
Content-Type: multipart/form-data

L-ismijiet tal-qasam tal-formola huma PascalCase b'notazzjoni bil-punti

textMessage u media.file huma injorati fis-skiet. Uża l-ismijiet eżatti hawn taħt.

Field fieldTipDeskrizzjoni
TextMessagestringTest tal-messaġġ
Authorint0 operatur, 1 klijent
IsInternalboolNota interna
ReplyToMessageIdintMessaġġ li qed jitwieġeb għal
AppGuiduuidGUID ta’ referenza
Media.FilebinaryIl-fajl innifsu
Media.NamestringIsem tal-fajl
Media.FormatstringTip MIME (video/mp4, image/png, application/pdf)
Media.TypeMediaTypeAra §8.5
Media.DataBase64stringAlternattiva għal Media.File
Media.ThumbnailstringFrame preview tal-vidjo Base64
Media.DurationdoubleTul tal-vidjo f’sekondi
curl -X POST "https://chatapi.smsbat.com/api/chat/1867/message/v2" \
  -H "Authorization: Bearer <token>" \
  -F "TextMessage=Here is the price list" \
  -F "Author=0" \
  -F "Media.Type=2" \
  -F "Media.File=@./price.pdf"

200 OK → { "id": 9931, "messageStatus": 0 }

4.5 Ibdel l-istatus taċ-chat

PUT https://chatapi.smsbat.com/api/chat/status
Authorization: Bearer <token>
Content-Type: application/json

{ "id": 1867, "status": 4 }

200 OK jirrepeti l-oġġett aġġornat.

4.6 Aġġorna l-istatus tal-messaġġi

PUT https://chatapi.smsbat.com/api/chat/messages/status
Authorization: Bearer <token>
Content-Type: application/json

{ "status": 3, "messageIds": [9928, 9929] }

4.7 Ħassar chat

DELETE https://chatapi.smsbat.com/api/chat/chats/1867
Authorization: Bearer <token>

5. Postijiet, Rukkelli u Stejjer

Mogħdija bażi: https://chatapi.smsbat.com/api/meta Awth: X-Authorization-Key: <organization token>

5.1 Elenka postijiet, Rukkelli u Stejjer

GET https://chatapi.smsbat.com/api/meta/posts?platform=instagram&mediaType=story&page=1&perPage=20
X-Authorization-Key: <token>
ParametruTipMeħtieġaDeskrizzjoni
pageintlePaġna, default 1
perPageintleOġġetti għal kull paġna, default 20
idintleIffiltra mill-ID tal-post intern
platformstringleinstagram jew facebook
mediaTypestringlepost, reel jew story. It-tipi kollha meta jitħallew barra
# Every post
curl -H "X-Authorization-Key: <token>" \
  "https://chatapi.smsbat.com/api/meta/posts?page=1&perPage=10"

# Instagram only
curl -H "X-Authorization-Key: <token>" \
  "https://chatapi.smsbat.com/api/meta/posts?platform=instagram"

# A single post by ID
curl -H "X-Authorization-Key: <token>" \
  "https://chatapi.smsbat.com/api/meta/posts?id=42"

# Instagram Stories only
curl -H "X-Authorization-Key: <token>" \
  "https://chatapi.smsbat.com/api/meta/posts?platform=instagram&mediaType=story"

200 OK:

{
  "total": 42,
  "items": [
    {
      "id": 42,
      "metaId": "18113450675314072",
      "text": "Check out our new collection!",
      "imageUrl": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-1711-4aa8-b21d-f6dbf8f347ef",
      "platform": "instagram",
      "mediaType": "story",
      "createdAt": "2026-07-22T09:35:30Z",
      "story": {
        "id": 42,
        "metaId": "18113450675314072",
        "url": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-1711-4aa8-b21d-f6dbf8f347ef"
      }
    }
  ]
}

Diskrepanza — isem tal-qasam tal-kontro

L-iskema Swagger MetaCommentPostListItemDtoPaginationDTO tiddefinixxi total. Il- dokumenti ta’ speċifikazzjoni interna totalCount. Swagger huwa ġġenerat mill-kodiċi, għalhekk total hija l-aktar verità probabbli. Parse total ?? totalCount sakemm dan jiġi solvut.

QasamDeskrizzjoni
idID tal-post intern
metaIdPost estern / Rukkell / Story ID fil-Meta
textPost caption
imageUrlProxy media URL immarkat mill-MetaPost.Guid mhux sekwenzjali, jew null
platformfacebook jew instagram
mediaTypepost, reel jew story
createdAtData tal-ħolqien (data tal-pjattaforma, jew id-data tad-database)
storyIppreżenta biss għal mediaType: "story"
story.idID tal-Istorja Interna; ugwali għal post.id
story.metaIdID Storja Esterna fil-Meta
story.urlURL prokura stabbli tal-midja Story maħżuna; null jekk il-midja ma setgħetx tiġi ssejvjata

Il-midja tal-posta hija moqdija b’żewġ rotot: GET /api/meta/post/media/{id:int} għal lura kompatibilità u GET /api/meta/post/media/{guid:guid}. Risposti API ġodda u callbacks dejjem iġġenera l-formola GUID.

5.2 Elenka l-kummenti

GET https://chatapi.smsbat.com/api/meta/comments?platform=instagram&postId=42&page=1&perPage=20
X-Authorization-Key: <token>
ParametruTipMeħtieġaDeskrizzjoni
pageintlePaġna, default 1
perPageintleOġġetti għal kull paġna, default 20
postIdintleIffiltra bl-ID tal-posta
parentCommentIdintleKummenti tat-tfal (tweġibiet) ta’ kumment partikolari
platformstringlefacebook jew instagram

200 OK:

{
  "total": 100,
  "items": [
    {
      "id": 5,
      "metaId": "179000000000005",
      "text": "What is the price?",
      "createdAt": "2026-04-15T10:30:00Z",
      "platform": "instagram",
      "replyStatus": null,
      "author": {
        "type": "meta_user",
        "name": "John Doe",
        "metaUserId": "1585775752382460"
      },
      "post": {
        "id": 1,
        "metaId": "18113450675314072",
        "text": null,
        "imageUrl": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-…",
        "createdAt": "2026-07-22T09:35:30Z",
        "mediaType": "story",
        "story": {
          "id": 1,
          "metaId": "18113450675314072",
          "url": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-…"
        }
      },
      "mediaUrl": "https://chatapi.smsbat.com/api/meta/comment/media/5",
      "replyTo": {
        "id": 3,
        "metaId": "179000000000003",
        "text": "Parent comment..."
      }
    }
  ]
}
QasamDeskrizzjoni
idID tal-kumment intern
metaIdID esterna fil-Meta. null għal tweġiba pendenti tagħna sakemm tintbagħat
textTest tal-kumment
createdAtData tal-ħolqien
platformfacebook jew instagram
replyStatusnull għal kumment ta’ utent deħlin; "pending" / "sent" / "failure" għat-tweġiba tagħna
author.type"meta_user" utent estern, "owner" sid tal-paġna
author.nameIsem tal-awtur
author.metaUserIdID tal-utent b’ambitu fil-Meta; null għal "owner"
postIl-post, Rukkell jew Storja li jappartjeni għall-kumment
post.mediaTypepost, reel jew story
post.storyReferenza għall-istorja { id, metaId, url }, Stejjer biss
mediaUrlMidja mehmuża mal-kumment, jew null
replyToKumment tal-ġenitur { id, metaId, text }; null fl-ogħla livell

Diskrepanza — tip ta' `author.type`

L-ispeċifikazzjoni interna tiddokumenta l-kordi "meta_user" / "owner". Tipi ta ‘swagger MetaCommentAuthorType bħala numru sħiħ bl-enum [0, 1]. A JsonStringEnumConverter jispjega d-distakk, iżda dan ma ġiex ikkonfermat kontra rispons reali. Ikteb a parser li jaċċetta t-tnejn.

5.3 Tweġiba għal kumment

Kjuw tweġiba għall-kunsinna.

curl -X POST \
  -H "X-Authorization-Key: <token>" \
  -H "Content-Type: application/json" \
  -d '{"text": "Thanks for the feedback!"}' \
  "https://chatapi.smsbat.com/api/meta/comments/5/reply"

Korp tat-talba: { "text": "Reply text" }

202 Accepted jirritorna l-oġġett tal-kumment — l-istess forma bħal GET /api/meta/comments — bi replyStatus: "pending" u metaId: null. Ir-riżultat tal-kunsinna jasal aktar tard bħala a source: 13 callback (§6.4).

Diskrepanza — kodiċi ta' rispons

Swagger jiddikjara 200 bl-ebda korp; l-ispeċifikazzjoni interna tiddikjara 202 Accepted bil-kumment bħala l-korp. Il-kontrollur x’aktarx nieqes minn ProducesResponseType attribut, li jħalli Swagger fuq default tiegħu. Aċċetta kwalunkwe 2xx u ma jiddependux fuq ġisem.


6. Webhooks

SMSBAT jibgħat POST talbiet b’application/json lill-URL tiegħek u jistenna HTTP 200 lura.

L-oqsma nulli jitħallew barra għal kollox

Field li l-valur tiegħu huwa null mhu serializzat fil-korp ta’ callback xejn. Għal a messaġġ li ma ġiex minn Facebook jew Instagram sempliċement m’hemm l-ebda ċavetta MetaUserId. Ittratta “assenti” u null bħala l-istess ħaġa.

6.1 Irreġistra URL ta’ callback

curl -X POST 'https://restapi.smsbat.com/organizations/callback_urls' \
  -H 'X-Authorization-Key: <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://your-server.com/webhook",
    "source": 12,
    "headerName": "X-Webhook-Secret",
    "headerValue": "your-secret",
    "channelType": 7,
    "channelEntityId": 12
  }'
QasamTipDeskrizzjoni
urlstringL-endpoint tiegħek
sourceSendingSourceCallbackTip ta’ avveniment, ara §8.2
headerName / headerValuestringHeader ta’ awtorizzazzjoni arbitrarja aħna nehmeż mat-talba (mhux obbligatorju)
channelTypeChatSourceKanal. 7 għal Instagram. Fakultattiv
channelEntityIdintKont tan-negozju speċifiku. Jeħtieġ channelType

Mingħajr channelType l-URL jirċievi avvenimenti minn kull kanal.

Tip

Kopertura sħiħa tal-kummenti teħtieġ żewġ reġistrazzjonijiet: source: 12 għal kummenti ġodda u source: 13 għall-istatus tat-tweġiba. Għal tweġibiet diretti u Story żid source: 3 (u 11 jekk trid kull messaġġ taċ-chat).

Operazzjonijiet li fadal:

GET    https://restapi.smsbat.com/organizations/callback_urls?source=12
GET    https://restapi.smsbat.com/organizations/callback_urls/{id}
PUT    https://restapi.smsbat.com/organizations/callback_urls/{id}
DELETE https://restapi.smsbat.com/organizations/callback_urls/{id}

GET jirritorna:

[
  {
    "id": 101,
    "url": "https://your-server.com/webhook",
    "source": 12,
    "headerName": "X-Webhook-Secret",
    "headerValue": "your-secret",
    "createdAt": "2026-08-13T09:00:00Z",
    "channelType": 7,
    "channelEntityId": 12
  }
]

6.2 Messaġġ ġdid u tweġiba għall-Istorja ta’ Instagram (source: 3, 11)

It-tweġiba ta’ utent għal Storja ta’ Instagram tasal bħala messaġġ ordinarju f’dawn it-telefonati lura, bi blokk Story tal-ogħla livell addizzjonali:

{
  "ChatId": 123,
  "MessageId": 456,
  "MessageText": "😍",
  "Username": "Jane Smith",
  "UserId": 789,
  "MetaUserId": "1585775752382460",
  "ShopId": 12,
  "ShopName": "instagram shop name",
  "Author": 0,
  "type_messenger": 7,
  "Story": {
    "Id": 42,
    "MetaId": "18113450675314072",
    "Url": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-1711-4aa8-b21d-f6dbf8f347ef"
  }
}
QasamDeskrizzjoni
ChatId / MessageIdIdentifikaturi taċ-chat u tal-messaġġ
Author0 utent, 1 operatur
UsernameIsem tal-wiri ta’ Instagram / Facebook jew manku
UserIdID tal-utent numeriku intern fl-SMSBAT
MetaUserIdID b’ambitu tas-sieħeb tal-konversazzjoni f’Meta. Fuq messaġġ ta’ operatur ħerġin dan xorta jidentifika l-utent Meta taċ-chat, mhux l-operatur
ShopIdID interna tal-kont tan-negozju ta’ Instagram/Facebook
ShopNameIsem tal-kont tan-negozju kif riċevut mingħand Meta fil-ħin tal-konnessjoni
MessageTextTest tal-messaġġ
MessageMediaMedia URL meta l-messaġġ huwa media
type_messengerSors, ​​7 għal Instagram
operator_nameIsem tal-operatur meta Author = 1
StoryIppreżenta biss fuq risposta ta’ Storja deħlin
Story.IdStorja Interna (MetaPost) ID — tista’ tintuża direttament bħala id / postId fil-Meta API
Story.MetaIdID Storja Esterna fil-Meta
Story.UrlURL prokura stabbli tal-midja Story maħżuna. Assenti meta l-midja ma setgħetx tiġi ssejvjata — il-blokk Story u l-messaġġ għadhom jitwasslu

`Author` huwa maqlub meta mqabbel mal-API taċ-Chat

F’ChatMessageDTO.author, 0 tfisser operatur u 1 tfisser klijent. F’dan callback huwa bil-kontra: 0 huwa l-utent, 1 huwa l-operatur. Taqsamx l-immappjar.

6.3 Kumment ġdid (source: 12)

Jispara meta utent Meta jikkummenta fuq post fuq Facebook jew fuq Instagram post / Rukkell.

Note

Instagram It-tweġibiet għall-istorja ma jitwasslux permezz ta’ source: 12. Jaslu bħala ordinarji messaġġi deħlin fuq source: 3 u/jew 11 bi blokk Story — ara §6.2.

{
  "type": "new_comment",
  "platform": "instagram",
  "comment": {
    "id": 10,
    "metaId": "179000000000010",
    "parentCommentId": 5,
    "parentMetaId": "179000000000005",
    "parentCommentText": "The user's previous comment",
    "text": "Great product!",
    "createdAt": "2026-04-16T12:00:00Z",
    "author": {
      "type": "meta_user",
      "name": "Jane Smith",
      "metaUserId": "1585775752382460"
    }
  },
  "post": {
    "id": 1,
    "metaId": "123456789012345",
    "text": "Post description...",
    "imageUrl": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-…",
    "createdAt": "2026-04-10T12:00:00Z",
    "mediaType": "post"
  }
}

6.4 Stat tat-tweġiba għall-kumment (source: 13)

Nirien wara li nippruvaw nagħtu tweġiba, kemm jekk tirnexxi jew tfalli.

{
  "type": "comment_status",
  "platform": "instagram",
  "comment": {
    "id": 15,
    "metaId": "179000000000015",
    "parentCommentId": 10,
    "parentMetaId": "179000000000010",
    "parentCommentText": "Great product!",
    "text": "Thanks for the feedback!",
    "createdAt": "2026-04-16T12:05:00Z",
    "updatedAt": "2026-04-16T12:05:03Z",
    "replyStatus": "sent",
    "author": {
      "type": "owner",
      "name": "Support Agent"
    }
  },
  "post": {
    "id": 1,
    "metaId": "179999999999999",
    "text": "Reel description...",
    "imageUrl": "https://dashboard.smsbat.com/api/meta/post/media/7d124c36-…",
    "createdAt": "2026-07-22T09:35:30Z",
    "mediaType": "reel"
  }
}

6.5 Oqsma ta’ callback ta’ kummenti kondiviżi

Iż-żewġ callbacks tal-kummenti jaqsmu forma waħda tal-ġisem u jvarjaw biss b’type.

QasamDeskrizzjoni
type"new_comment" jew "comment_status"
platform"facebook" jew "instagram"
comment.idID tal-kumment intern
comment.metaIdID esterna fil-Meta; null għal tweġiba pendenti qabel ma tintbagħat
comment.parentCommentIdID tal-kumment tal-ġenitur. Assenti għal kumment tal-ogħla livell
comment.parentMetaIdID tal-kumment estern tal-ġenitur. Assenti fl-ogħla livell
comment.parentCommentTextTest tal-kumment tal-ġenituri. Assenti fl-ogħla livell
comment.textTest tal-kumment
comment.createdAtData tal-ħolqien
comment.updatedAtL-aħħar aġġornament. Assenti jekk il-kumment qatt ma ġie editjat
comment.replyStatus"pending" / "sent" / "failure". Assenti għal kumment ta’ utent deħlin
comment.author.type"meta_user" jew "owner"
comment.author.nameIsem tal-awtur
comment.author.metaUserIdID tal-awtur b’ambitu fil-Meta. Assenti għal "owner"
comment.mediaUrlKumment midja. Assenti meta ma jkunx hemm
post.idID tal-post intern
post.metaIdPost estern / Rukkell / Story ID fil-Meta
post.textPost test
post.imageUrlIbgħat l-URL tal-immaġni, jew null
post.createdAtData ta’ wara l-ħolqien
post.mediaTypeF’callbacks ta’ kummenti, post jew reel biss

6.6 Chat ġdid (source: 7)

{ "ChatId": 12345, "Phone": "+380501234567", "chat.Source": 7 }

6.7 Bidliet fl-istatus tal-messaġġi u taċ-chat (source: 6 / 5)

{ "name": "changed_message_status", "id": 9928, "status": 6 }
{ "name": "changed_chat_status",    "id": 1867, "status": 4 }

6.8 Messaġġ editjat jew imħassra (source: 9)

{ "messageId": 9930, "text": "Updated message text" }
{ "messageId": 9931, "delete": true }

6.9 Indikatur tat-tajpjar (source: 8)

{ "chat_id": 1867, "event": "start_typing", "operator_name": "Iryna" }
{ "chat_id": 1867, "event": "end_typing" }

7. Votazzjoni tal-avveniment

Għal ambjenti li ma jistgħux jaċċettaw HTTP deħlin.

7.1 Ġib avvenimenti

GET https://chatapi.smsbat.com/api/chat/callback-events?page=1&perPage=20
Authorization: Bearer <token>
ParametruDeskrizzjoni
organizationIdFakultattiv. Meħuda mit-token meta titħalla barra
page / perPagePaġnar, defaults 1 / 20
{
  "page": 1,
  "perPage": 20,
  "total": 947,
  "items": [
    {
      "ChatId": 1867,
      "MessageId": 9928,
      "MessageText": "Hello there!",
      "MessageMedia": null,
      "Phone": null,
      "Username": "marianna_cat",
      "UserId": 123,
      "ShopId": 12,
      "ShopName": "instagram shop name",
      "Author": 1,
      "type_messenger": 7,
      "message_date": "2026-08-13T12:27:39.724Z",
      "timestamp": "2026-08-13T12:27:39.736Z",
      "event_guid": "ff60129e-c6e4-4876-9d90-badb430c0606",
      "organization_id": 1,
      "callback_type": "3"
    }
  ]
}

Kull avveniment iġorr event_guid, timestamp, organization_id u callback_type — a string li taqbel mal-valuri source f’§8.2. L-oqsma li jifdal jaqblu mal-korrispondenti webhook fil-§6.

7.2 Irrikonoxxi l-avvenimenti pproċessati

POST https://chatapi.smsbat.com/api/chat/callback-events/processed
Authorization: Bearer <token>
Content-Type: application/json

[ "ff60129e-c6e4-4876-9d90-badb430c0606" ]

200 OK → { "deleted": 1 }

L-avvenimenti li diġà tneħħew sempliċement ma jgħoddux għal deleted. L-ordnijiet u l-prova mill-ġdid huma tiegħek responsabbiltà tan-naħa.

7.3 Loop rakkomandat

  1. Istħarriġ GET /api/chat/callback-events fuq skeda.
  2. Ipproċessa l-avvenimenti fis-servizz tiegħek.
  3. Ibgħat il-lista pproċessata event_guid lil /callback-events/processed.
  4. Irrepeti.

8. Referenza tal-enum

8.1 ChatSource — kanal (0–9)

KodiċiKanal
0Viber
1ViberBot
2TelegramBot
3Whatsapp
4Widget
5Rozetka
6Facebook
7Instagram
8Prom
9Olx

8.2 SendingSourceCallback — tip ta’ avveniment ta’ callback (0–13)

KodiċiAvveniment
3Chat — messaġġ chat ġdid, inklużi tweġibiet għall-Istorja
5L-istatus taċ-chat inbidel
6L-istatus tal-messaġġ inbidel
7Chat ġdid maħluqa
8Indikatur tat-tajpjar
9Messaġġ aġġornat jew imħassra
11AnyChatMessage — kwalunkwe messaġġ taċ-chat
12MetaNewComment — kumment ġdid ta’ Instagram / Facebook
13MetaCommentStatus — l-istatus tal-kunsinna tat-tweġiba tal-kumment tagħna

L-enum jifrex 0–13; il-valuri li jifdal mhumiex meħtieġa għall-integrazzjonijiet ta ‘Instagram.

8.3 ChatStatus (0–4)

0 Ġdid, 1 Miftuħ, 2 Stennija, 3 OnPause, 4 Magħluq

8.4 MessageStatus (0–11)

KodiċiIsem
0ĠODDA
1SUĊĊESS
2MIĊĦUT
3AQRA
4MHUX MAGĦRUF
5PROĊESSAR
6MOGĦTIJA
7BLOCKED_BY_USER
8USER_NOT_FUND

L-enum jifrex 0–11. Il-valuri 9, 10 u 11 jeżistu fl-API iżda għadhom mhumiex dokumentati — ittrattahom bħala UNKNOWN.

8.5 MediaType (1–10)

1 Ritratt, 2 Fajl, 3 Awdjo, 4 Vidjo, 5 Stiker, 6 StikerAnimated, 7 StikerVideo, 8 Animazzjoni, 9 Voice, 10 VideoNote

8.6 AuthorMessage — awtur fl-API taċ-Chat (0–4)

0 Operatur, 1 Klijent, 2 Bot, 3 ViberAccount

L-enum jifrex 0–4; valur 4 mhuwiex dokumentat. Is-callbacks ta’ “messaġġ ġdid” jużaw il- mapping oppost — ara §6.2.

8.7 ChatMessageType (0–2)

0 Test, 1 Ritratt, 2 Fajl

8.8 Kumment replyStatus

null kumment tal-utent deħlin, "pending" it-tweġiba tagħna hija fil-kju, "sent" ikkunsinnat, Il-kunsinna "failure" falliet.


Mistoqsijiet miftuħa

Tliet punti fejn l-ispeċifikazzjoni interna u s-Swagger iġġenerat mill-kodiċi ma jaqblux. Wieħed talba b’token reali ssolvihom kollha; sa dakinhar, ikteb lill-klijent b’mod difensiv.

#MistoqsijaSpeċifikazzjoniSwaggerKif tiċċekkja
1Header ta’ awtenzjoni għal /api/meta/*X-Authorization-KeyBearer biss iddikjaratcurl -i -H "X-Authorization-Key: <token>" ".../api/meta/posts?perPage=1" — jistennew 200, mhux 401
2Counter field fit-tweġibiet MetatotalCounttotalL-istess talba — aqra ċ-ċavetta JSON ta’ l-għerq
3author.type tip u reply kodiċi tal-istatus"meta_user" / "owner", 202 bil-korpint [0,1], 200 mingħajr korpcurl -i .../api/meta/comments?perPage=1 flimkien ma’ tweġiba tat-test

Gwida interim:

  • counter — aqra total ?? totalCount;
  • author.type — aċċetta kemm string kif ukoll numru sħiħ (0 ↔ meta_user, 1 ↔ owner, l-immappjar irid jiġi kkonfermat);
  • reply — ittratta kwalunkwe 2xx bħala suċċess, ma teħtieġ l-ebda korp, ħu l-istatus finali mill-callback source: 13.

Noti ta’ implimentazzjoni

  • Awth tvarja għal kull grupp ta’ endpoint — /api/meta/* juża X-Authorization-Key, chats u operaturi jużaw Bearer, restapi jaċċetta jew.
  • Paġinazzjoni hija miktuba b’żewġ modi — per_page fuq /api/chat/chats, perPage fuq /api/meta/* u /api/chat/callback-events.
  • L-oqsma multipart/form-data huma PascalCase b’notazzjoni bil-punti (Media.File, Media.Type).
  • L-oqsma nulli jitħallew barra minn callbacks — ċavetta assenti tfisser null.
  • phone huwa normalment null fuq Instagram. Identifika l-klijent minn instagramUser.id / metaUserId u l-ħanut minn instaAccount.id (il-valur tal-filtru entityId).
  • Story.Id minn callback jista’ jiġi mgħoddi dritt lura bħala id / postId lill-Meta API.
  • Iċċekkja l-operatur JWT expiresAt qabel tużah f’deeplink jew fil-widget.