1/*! For license information please see 95e8cf49.69d00a43.js.LICENSE.txt */ 2"use strict";(globalThis.webpackChunkopenim_docs=globalThis.webpackChunkopenim_docs||[]).push([[1340],{38452(e,r,s){s.r(r),s.d(r,{assets:()=>o,contentTitle:()=>l,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"webhooks/group/disMissGroupAfter","title":"Callback After Dismissing Group","description":"Functional Description","source":"@site/i18n/en/docusaurus-plugin-content-docs-restapi/current/webhooks/group/disMissGroupAfter.md","sourceDirName":"webhooks/group","slug":"/webhooks/group/disMissGroupAfter","permalink":"/restapi/webhooks/group/disMissGroupAfter","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenIMSDK/docs/tree/main/docs/restapi/webhooks/group/disMissGroupAfter.md","tags":[],"version":"current","lastUpdatedAt":1773123673000,"sidebarPosition":16,"frontMatter":{"sidebar_position":16,"title":"Callback After Dismissing Group","hide_title":true},"sidebar":"tutorialSidebar","previous":{"title":"Callback After Marking Group Chat Conversation Read","permalink":"/restapi/webhooks/group/groupMsgReadAfter"},"next":{"title":"Callback Before Applying to Join Group","permalink":"/restapi/webhooks/group/applyJoinGroupBefore"}}');var n=s(86070),t=s(81753);const c={sidebar_position:16,title:"Callback After Dismissing Group",hide_title:!0},l="Callback After Dismissing Group",o={},a=[{value:"Functional Description",id:"functional-description",level:2},{value:"Precautions",id:"precautions",level:2},{value:"Scenarios That May Trigger This Callback",id:"scenarios-that-may-trigger-this-callback",level:2},{value:"Timing of Callback",id:"timing-of-callback",level:2},{value:"Interface Description",id:"interface-description",level:2},{value:"Request URL Example",id:"request-url-example",level:3},{value:"Request Package Example",id:"request-package-example",level:3},{value:"Request Package Field Description",id:"request-package-field-description",level:3},{value:"Response Package Example",id:"response-package-example",level:2},{value:"Processing Result",id:"processing-result",level:3},{value:"Response Package Field Description",id:"response-package-field-description",level:2}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"callback-after-dismissing-group",children:"Callback After Dismissing Group"})}),"\n",(0,n.jsx)(r.h2,{id:"functional-description",children:"Functional Description"}),"\n",(0,n.jsx)(r.p,{children:"After a successful operation, the business server can perform necessary data synchronization or other business logic processing through this callback."}),"\n",(0,n.jsx)(r.h2,{id:"precautions",children:"Precautions"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["To enable the callback, you must configure the callback URL and turn on the switch corresponding to this callback protocol. See the ",(0,n.jsx)(r.a,{href:"../introduction",children:"Callback Description"})," document for configuration methods."]}),"\n",(0,n.jsx)(r.li,{children:"The callback direction is an HTTP/HTTPS POST request initiated by IMServer to the business server."}),"\n",(0,n.jsx)(r.li,{children:"The business server must respond to this request within the timeout period."}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"scenarios-that-may-trigger-this-callback",children:"Scenarios That May Trigger This Callback"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"After users perform corresponding operations successfully through the client or APP administrators through REST API."}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"timing-of-callback",children:"Timing of Callback"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:"After a group is successfully dismissed."}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"interface-description",children:"Interface Description"}),"\n",(0,n.jsx)(r.h3,{id:"request-url-example",children:"Request URL Example"}),"\n",(0,n.jsxs)(r.p,{children:["Here ",(0,n.jsx)(r.code,{children:"CallbackCommand"})," is: ",(0,n.jsx)(r.code,{children:"callbackAfterDisMissGroupCommand"})]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-plaintext",children:"{WEBHOOK_ADDRESS}/callbackAfterDisMissGroupCommand?contenttype=json\n"})}),"\n",(0,n.jsx)(r.h3,{id:"request-package-example",children:"Request Package Example"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-json",children:'{\n "callbackCommand": "callbackAfterDisMissGroupCommand",\n "groupID": "G001",\n "groupType": 2,\n "ownerID": "user123",\n "membersID": ["user456", "user789"]\n}\n\n'})}),"\n",(0,n.jsx)(r.h3,{id:"request-package-field-description",children:"Request Package Field Description"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Object"}),(0,n.jsx)(r.th,{children:"Type"}),(0,n.jsx)(r.th,{children:"Description"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"callbackCommand"}),(0,n.jsx)(r.td,{children:"string"}),(0,n.jsx)(r.td,{children:"Callback command, here it is the callback after dismissing a group"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"groupID"}),(0,n.jsx)(r.td,{children:"string"}),(0,n.jsx)(r.td,{children:"Unique identifier of the group"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"groupType"}),(0,n.jsx)(r.td,{children:"int32"}),(0,n.jsx)(r.td,{children:"Group type, fixed as 2."})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"ownerID"}),(0,n.jsx)(r.td,{children:"string"}),(0,n.jsx)(r.td,{children:"Group owner ID"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"membersID"}),(0,n.jsx)(r.td,{children:"array"}),(0,n.jsx)(r.td,{children:"List of group members, including user IDs, representing members in the group upon dismissal"})]})]})]}),"\n",(0,n.jsx)(r.h2,{id:"response-package-example",children:"Response Package Example"}),"\n",(0,n.jsx)(r.h3,{id:"processing-result",children:"Processing Result"}),"\n",(0,n.jsx)(r.p,{children:"After the App backend records the group dismissal info, it sends a callback response package."}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-json",children:'{\n "actionCode": 0,\n "errCode": 0,\n "errMsg": "",\n "errDlt": "",\n "nextCo
2de": 1\n}\n\n'})}),"\n",(0,n.jsx)(r.h2,{id:"response-package-field-description",children:"Response Package Field Description"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Field"}),(0,n.jsx)(r.th,{children:"Value"}),(0,n.jsx)(r.th,{children:"Description"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"actionCode"}),(0,n.jsx)(r.td,{children:"0"}),(0,n.jsxs)(r.td,{children:["Indicates whether the business system callback was executed correctly. ",(0,n.jsx)(r.code,{children:"0"})," means the operation was successful."]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"errCode"}),(0,n.jsx)(r.td,{children:"0"}),(0,n.jsxs)(r.td,{children:["Custom error code, ",(0,n.jsx)(r.code,{children:"0"})," here means ignore the callback result."]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"errMsg"}),(0,n.jsx)(r.td,{children:'"An error message"'}),(0,n.jsx)(r.td,{children:"Simple error message corresponding to the custom error code."})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"errDlt"}),(0,n.jsx)(r.td,{children:'"Detailed error information"'}),(0,n.jsx)(r.td,{children:"Detailed error information corresponding to the custom error code."})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"nextCode"}),(0,n.jsx)(r.td,{children:"1"}),(0,n.jsxs)(r.td,{children:["Next execution instruction, ",(0,n.jsx)(r.code,{children:"1"})," means refusing to continue execution, set when actionCode is ",(0,n.jsx)(r.code,{children:"0"}),"."]})]})]})]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},77462(e,r,s){var i=s(30758),n=Symbol.for("react.element"),t=Symbol.for("react.fragment"),c=Object.prototype.hasOwnProperty,l=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function a(e,r,s){var i,t={},a=null,d=null;for(i in void 0!==s&&(a=""+s),void 0!==r.key&&(a=""+r.key),void 0!==r.ref&&(d=r.ref),r)c.call(r,i)&&!o.hasOwnProperty(i)&&(t[i]=r[i]);if(e&&e.defaultProps)for(i in r=e.defaultProps)void 0===t[i]&&(t[i]=r[i]);return{$$typeof:n,type:e,key:a,ref:d,props:t,_owner:l.current}}r.Fragment=t,r.jsx=a,r.jsxs=a},86070(e,r,s){e.exports=s(77462)},81753(e,r,s){s.d(r,{R:()=>c,x:()=>l});var i=s(30758);const n={},t=i.createContext(n);function c(e){const r=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),i.createElement(t.Provider,{value:r},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.