Open in
ਵੈੱਬਹੁੱਕਸ ਸੰਖੇਪ ਜਾਣਕਾਰੀ
ThunderPhone ਰੀਅਲ-ਟਾਈਮ ਇਵੈਂਟ ਕਿਵੇਂ ਡਿਲੀਵਰ ਕਰਦਾ ਹੈ, ਸਿਗਨੇਚਰਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਿਵੇਂ ਕਰਨੀ ਹੈ, ਅਤੇ ਲੈਗੇਸੀ ਤੇ ਐਂਡਪੌਇੰਟ-ਆਧਾਰਿਤ ਡਿਲੀਵਰੀ ਮਾਡਲਾਂ ਦੀ ਤੁਲਨਾ ਕਿਵੇਂ ਹੁੰਦੀ ਹੈ।
ThunderPhone ਤੁਹਾਡੇ ਸਰਵਰ ਨੂੰ HTTP POST ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਹੈ ਜਦੋਂ ਕਾਲ ਦੌਰਾਨ ਕੁਝ ਹੁੰਦਾ ਹੈ — ਇਨਬਾਊਂਡ ਕਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਕਾਲ ਸਮਾਪਤ ਹੁੰਦੀ ਹੈ, ਗ੍ਰੇਡਿੰਗ ਰਨ ਪੂਰਾ ਹੁੰਦਾ ਹੈ, ਅਲਰਟ ਚੱਲਦਾ ਹੈ, ਆਦਿ। ਇੱਥੇ ਦੋ ਡਿਲਿਵਰੀ ਮਾਡਲ ਹਨ:
ਕਈ URL, ਹਰੇਕ ਐਂਡਪੌਇੰਟ ਲਈ ਵੱਖਰੇ ਸੀਕ੍ਰੇਟ, ਹਰੇਕ ਐਂਡਪੌਇੰਟ ਲਈ ਵੱਖਰੇ ਇਵੈਂਟ ਫਿਲਟਰ,
ਅਤੇ ਆਟੋਮੈਟਿਕ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ।
GET/POST/PATCH/DELETE /v1/developer/webhook-endpoints ਰਾਹੀਂ ਪ੍ਰਬੰਧਿਤ ਕਰੋ।
ਹਰੇਕ ਸੰਸਥਾ ਲਈ ਇੱਕ URL। ਇਸ ਵਿੱਚ ਕਾਲ-ਲਾਈਫਸਾਈਕਲ ਇਵੈਂਟ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ, ਜਿਸ ਵਿੱਚ
ਬਲਾਕਿੰਗ ਕੌਂਫਿਗਰੇਸ਼ਨ ਅਦਲਾ-ਬਦਲਾਂ ਵੀ ਸ਼ਾਮਲ ਹਨ। GET/PUT /v1/webhook 'ਤੇ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਇਵੈਂਟ ਕੈਟਾਲੌਗ ਵਿੱਚ ਸਾਰੇ 10 ਇਵੈਂਟ ਕਿਸਮਾਂ
ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਾਂ ਰਾਹੀਂ ਡਿਲਿਵਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਛੇ ਕਾਲ-ਲਾਈਫਸਾਈਕਲ ਇਵੈਂਟ
(telephony.incoming, telephony.complete, telephony.tool,
web.incoming, web.complete, web.tool) ਵੀ ਲੈਗੇਸੀ
ਸਿੰਗਲ-URL ਵੈੱਬਹੁੱਕ ਨੂੰ ਭੇਜੇ ਜਾਂਦੇ ਹਨ — ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਲੈਗੇਸੀ URL ਅਤੇ ਮੇਲ ਖਾਂਦਾ
ਐਂਡਪੌਇੰਟ ਦੋਵੇਂ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਇਵੈਂਟ ਦੋਵੇਂ ਮਾਰਗਾਂ 'ਤੇ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ। ਬਲਾਕਿੰਗ
ਵਿਹਾਰ (telephony.incoming / web.incoming ਕੌਂਫਿਗਰੇਸ਼ਨ
ਅਦਲਾ-ਬਦਲ ਅਤੇ ਵੈੱਬਹੁੱਕ-ਮੋਡ
ਟੂਲ ਡਿਸਪੈਚ) ਸਿਰਫ਼
ਲੈਗੇਸੀ ਮਾਰਗ 'ਤੇ ਹੁੰਦਾ ਹੈ; ਹਰੇਕ ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀ ਫਾਇਰ-ਐਂਡ-ਫਰਗੇਟ ਸੂਚਨਾ ਹੁੰਦੀ ਹੈ।
ਪੇਲੋਡ ਫਾਰਮੈਟ
ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀਆਂ data, event_id, ਅਤੇ
type ਵਾਲਾ ਇੱਕ JSON ਆਬਜੈਕਟ ਹੁੰਦੀਆਂ ਹਨ:
{
"data": {
"call_id": 987654321,
"from_number": "+14155550199",
"to_number": "+15551234567"
},
"event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
"type": "telephony.incoming"
}event_id ਹਰੇਕ ਭੇਜੇ ਗਏ ਇਵੈਂਟ ਲਈ ਵਿਲੱਖਣ ਹੁੰਦਾ ਹੈ। ਇਹ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ
ਅਤੇ ਇਵੈਂਟ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਹਰੇਕ ਐਂਡਪੌਇੰਟ ਵਿੱਚ ਇੱਕੋ ਜਿਹਾ ਹੁੰਦਾ ਹੈ — ਇਸ ਦੇ ਆਧਾਰ 'ਤੇ ਡੀਡਿਊਪਲੀਕੇਟ ਕਰੋ।
ਲੈਗੇਸੀ ਸਿੰਗਲ-URL ਵੈੱਬਹੁੱਕ ਉਹੀ type ਅਤੇ data ਭੇਜਦਾ ਹੈ, ਪਰ
event_id ਤੋਂ ਬਿਨਾਂ:
{
"type": "telephony.incoming",
"data": { "call_id": 987654321, "from_number": "+14155550199", "to_number": "+15551234567" }
}ਵਾਇਰ 'ਤੇ, ਹਰੇਕ ਬਾਡੀ ਕੈਨੋਨਿਕਲ ਤਰੀਕੇ ਨਾਲ ਸੀਰੀਅਲਾਈਜ਼ ਹੁੰਦੀ ਹੈ — ਕੁੰਜੀਆਂ ਅੱਖਰਕ੍ਰਮ ਅਨੁਸਾਰ ਕ੍ਰਮਬੱਧ, ਕੋਈ ਵ੍ਹਾਈਟਸਪੇਸ ਨਹੀਂ, UTF-8। ਇਨ੍ਹਾਂ ਡੌਕਸ ਵਿੱਚ ਸੁਚੱਜੇ ਤਰੀਕੇ ਨਾਲ ਫਾਰਮੈਟ ਕੀਤੀਆਂ ਉਦਾਹਰਨਾਂ ਸਿਰਫ਼ ਪੜ੍ਹਨਯੋਗਤਾ ਲਈ ਹਨ।
ਇਵੈਂਟ ਕਿਸਮਾਂ ਅਤੇ ਪੇਲੋਡ ਫੀਲਡਾਂ ਦੀ ਪੂਰੀ ਸੂਚੀ ਲਈ ਇਵੈਂਟ ਕੈਟਾਲੌਗ ਵੇਖੋ।
ਦਸਤਖ਼ਤ ਤਸਦੀਕ
ਹਰ ਬੇਨਤੀ ਵਿੱਚ X-ThunderPhone-Signature ਹੈਡਰ ਵਿੱਚ ਕੱਚੇ ਬੇਨਤੀ
ਬਾਡੀ ਉੱਤੇ ਇੱਕ HMAC-SHA256 ਦਸਤਖ਼ਤ ਹੁੰਦਾ ਹੈ। ਸਾਈਨਿੰਗ ਕੁੰਜੀ ਐਂਡਪੌਇੰਟ ਦਾ
secret ਹੁੰਦਾ ਹੈ (ਜਾਂ ਪੁਰਾਣੀਆਂ ਡਿਲਿਵਰੀਆਂ ਲਈ ਤੁਹਾਡੀ ਸੰਸਥਾ-ਪੱਧਰੀ ਵੈੱਬਹੁੱਕ
secret)।
ਕਦਮ
- ਕਿਸੇ ਵੀ ਪਾਰਸਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਕੱਚਾ ਬੇਨਤੀ ਬਾਡੀ ਪੜ੍ਹੋ।
hmac_sha256(secret, body).hexdigest()ਦੀ ਗਣਨਾ ਕਰੋ।X-ThunderPhone-Signatureਹੈਡਰ ਨਾਲ ਸਥਿਰ ਸਮੇਂ ਵਿੱਚ ਤੁਲਨਾ ਕਰੋ।
ਅਸੀਂ ਬਿਲਕੁਲ ਉਹੀ ਬਾਈਟਾਂ ਸਾਈਨ ਕਰਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਭੇਜਦੇ ਹਾਂ, ਅਤੇ ਉਹ ਬਾਈਟਾਂ ਕੈਨੋਨਿਕਲ JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ ਹੁੰਦੀਆਂ ਹਨ (ਕ੍ਰਮਬੱਧ ਕੁੰਜੀਆਂ, ਸੰਖੇਪ ਵੱਖਰੇਕਰਨ)। ਇਸ ਲਈ ਕੱਚੇ ਬਾਡੀ ਦੇ ਮੁਕਾਬਲੇ ਤਸਦੀਕ ਹਮੇਸ਼ਾਂ ਕੰਮ ਕਰਦੀ ਹੈ — ਅਤੇ ਜੇ ਤੁਹਾਡਾ ਫ੍ਰੇਮਵਰਕ ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਪਾਰਸ ਕੀਤਾ JSON ਦਿੰਦਾ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਕ੍ਰਮਬੱਧ ਕੁੰਜੀਆਂ ਅਤੇ ਸੰਖੇਪ ਵੱਖਰੇਕਰਨ ਨਾਲ ਦੁਬਾਰਾ ਸੀਰੀਅਲਾਈਜ਼ ਕਰਨ ਨਾਲ ਇੱਕੋ ਜਿਹੀਆਂ ਬਾਈਟਾਂ ਬਣਦੀਆਂ ਹਨ। ਦੋਵੇਂ ਤਰੀਕੇ ਤਸਦੀਕ ਗਾਈਡ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ।
import hmac
import hashlib
def verify_signature(body: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode("utf-8"),
body,
hashlib.sha256,
).hexdigest()
return hmac.compare_digest(expected, signature or "")
# Example Flask handler
from flask import Flask, request, abort
app = Flask(__name__)
@app.post("/thunderphone-webhook")
def handle():
body = request.get_data()
sig = request.headers.get("X-ThunderPhone-Signature", "")
if not verify_signature(body, sig, WEBHOOK_SECRET):
abort(401)
event = request.get_json()
# dispatch on event["type"] …
return "", 204import crypto from "node:crypto";
import express from "express";
function verifySignature(body, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
if (!signature || expected.length !== signature.length) return false;
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature),
);
}
const app = express();
app.post(
"/thunderphone-webhook",
express.raw({ type: "application/json" }),
(req, res) => {
const sig = req.header("X-ThunderPhone-Signature") || "";
if (!verifySignature(req.body, sig, process.env.WEBHOOK_SECRET)) {
return res.sendStatus(401);
}
const event = JSON.parse(req.body.toString("utf8"));
// dispatch on event.type …
res.sendStatus(204);
},
);ਡਿਲਿਵਰੀ ਅਰਥ-ਵਿਧੀ
ਇਹ ਅਰਥ-ਵਿਧੀਆਂ ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀਆਂ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀਆਂ ਹਨ। ਪੁਰਾਣਾ ਸਿੰਗਲ-URL ਵੈੱਬਹੁੱਕ ਬਿਨਾਂ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ ਦੇ ਇੱਕ ਸਿੰਗਲ ਸਮਕਾਲੀ ਯਤਨ ਹੈ।
ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ
ਹਰ ਇਵੈਂਟ ਦਾ ਤੁਰੰਤ ਇੱਕ ਵਾਰ ਯਤਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਕੋਈ ਵੀ 2xx ਜਵਾਬ
ਡਿਲਿਵਰੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਵੀ ਹੋਰ ਨਤੀਜੇ ਉੱਤੇ (ਗੈਰ-2xx,
ਕਨੈਕਸ਼ਨ ਗਲਤੀ, ਟਾਈਮਆਊਟ) ਅਸੀਂ ਪਹਿਲੇ ਯਤਨ ਤੋਂ ਬਾਅਦ 1 ਮਿੰਟ, 5 ਮਿੰਟ, 30 ਮਿੰਟ, 2 ਘੰਟੇ, 6 ਘੰਟੇ,
12 ਘੰਟੇ ਅਤੇ 24 ਘੰਟੇ 'ਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ — 24 ਘੰਟਿਆਂ ਵਿੱਚ
8 ਯਤਨ। ਜੇ ਹਰ ਯਤਨ ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਡਿਲਿਵਰੀ ਰੁਕ ਜਾਂਦੀ ਹੈ ਅਤੇ ਐਂਡਪੌਇੰਟ ਨੂੰ
ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਾਂ ਵਿੱਚ
status="failing" ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਜਦੋਂ ਹੀ ਪੇਲੋਡ ਟਿਕਾਊ ਤੌਰ 'ਤੇ ਸਵੀਕਾਰ ਹੋਵੇ,
2xx ਵਾਪਸ ਕਰੋ; ਅਸਮਕਾਲੀ ਢੰਗ ਨਾਲ ਪ੍ਰਕਿਰਿਆ ਕਰੋ।
ਕ੍ਰਮਬੱਧਤਾ
ਡਿਲਿਵਰੀ ਕ੍ਰਮਬੱਧਤਾ ਸਭ ਤੋਂ ਵਧੀਆ ਯਤਨ ਦੇ ਆਧਾਰ 'ਤੇ ਹੈ। ਅਭਿਆਸ ਵਿੱਚ ਅਸੀਂ ਇਵੈਂਟਾਂ ਨੂੰ
ਉਹਨਾਂ ਦੇ ਨਿਕਲਣ ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਡਿਲਿਵਰ ਕਰਦੇ ਹਾਂ, ਪਰ ਅਸਫਲਤਾ ਹੋਣ 'ਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ ਕ੍ਰਮ ਬਦਲ ਸਕਦੀਆਂ ਹਨ।
ਹਮੇਸ਼ਾ call_id / ਆਬਜੈਕਟ id ਰਾਹੀਂ ਡੁਪਲੀਕੇਟ ਹਟਾਓ ਅਤੇ ਮਿਲਾਨ ਕਰੋ।
ਡੁਪਲੀਕੇਟ
ਡਿਲਿਵਰੀ ਘੱਟੋ-ਘੱਟ-ਇੱਕ-ਵਾਰ ਹੈ: ਉਸ ਜਵਾਬ ਤੋਂ ਬਾਅਦ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼, ਜੋ ਅਸੀਂ ਕਦੇ
ਨਹੀਂ ਦੇਖਿਆ, ਕਿਸੇ ਇਵੈਂਟ ਦੀ ਡੁਪਲੀਕੇਟ ਬਣਾ ਸਕਦੀ ਹੈ। ਹਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਉਹੀ
event_id ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀਆਂ id ਸਟੋਰ ਕਰੋ ਅਤੇ ਦੁਹਰਾਵੇ ਛੱਡੋ। event_id
ਐਂਡਪੌਇੰਟਾਂ ਵਿਚਕਾਰ ਵੀ ਸਾਂਝਾ ਹੁੰਦਾ ਹੈ — ਇੱਕੋ ਇਵੈਂਟ ਲਈ ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਦੋ ਐਂਡਪੌਇੰਟਾਂ ਨੂੰ
ਉਹੀ event_id ਮਿਲਦਾ ਹੈ।
ਟਾਈਮਆਊਟ
ਐਂਡਪੌਇੰਟ ਡਿਲਿਵਰੀਆਂ ਵਿੱਚ ਹਰ ਯਤਨ ਲਈ 30 ਸਕਿੰਟ ਦਾ ਟਾਈਮਆਊਟ ਹੁੰਦਾ ਹੈ। ਪੁਰਾਣੇ ਪਾਥ 'ਤੇ,
ਲਾਈਵ ਕਾਲ ਵਿਹਾਰ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਵਾਲੀਆਂ ਬਲੌਕਿੰਗ ਬੇਨਤੀਆਂ —
telephony.incoming / web.incoming
ਕਨਫਿਗਰੇਸ਼ਨ ਅਦਲਾ-ਬਦਲੀ — 10 ਸਕਿੰਟ ਬਾਅਦ ਟਾਈਮਆਊਟ ਹੋ ਜਾਂਦੀਆਂ ਹਨ, ਪਰ ਹੌਲਾ
ਜਵਾਬ ਕਾਲ ਚੁੱਕਣ ਵਿੱਚ ਦੇਰੀ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਕੁਝ ਸਕਿੰਟਾਂ ਦੇ ਅੰਦਰ ਜਵਾਬ ਦੇਣ ਦਾ ਟੀਚਾ ਰੱਖੋ। ਵੈੱਬਹੁੱਕ-ਮੋਡ
ਟੂਲ ਡਿਸਪੈਚ ਮੂਲ ਰੂਪ ਵਿੱਚ 20 ਸਕਿੰਟ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ,
ਅਤੇ ਟੂਲ ਘੋਸ਼ਣਾਵਾਂ ਉੱਚ-ਪੱਧਰੀ timeout ਸੈੱਟ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਸਰੋਤ IP
ਆਊਟਬਾਊਂਡ ਵੈੱਬਹੁੱਕ ThunderPhone ਦੀ ਕਲਾਉਡ IP ਰੇਂਜ ਤੋਂ ਆਉਂਦੇ ਹਨ। ਜੇ ਤੁਹਾਡੇ ਫਾਇਰਵਾਲ ਨੂੰ ਅਲਾਊਲਿਸਟ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਅਤੇ ਅਸੀਂ ਮੌਜੂਦਾ ਰੇਂਜਾਂ ਸਾਂਝੀਆਂ ਕਰਾਂਗੇ।
ਪੁਰਾਣੇ ਅਤੇ ਐਂਡਪੌਇੰਟ-ਅਧਾਰਿਤ ਵੈੱਬਹੁੱਕਾਂ ਵਿੱਚੋਂ ਚੋਣ
| ਵਿਸ਼ੇਸ਼ਤਾ | ਪੁਰਾਣਾ (/v1/webhook) | ਐਂਡਪੌਇੰਟ (/v1/developer/webhook-endpoints) |
|---|---|---|
| URL ਦੀ ਗਿਣਤੀ | ਹਰ ਸੰਗਠਨ ਲਈ 1 | ਹਰ ਸੰਗਠਨ ਲਈ ਕਈ |
| ਇਵੈਂਟ ਕਵਰੇਜ | ਸਿਰਫ਼ telephony.* / web.* | ਸਾਰੀਆਂ 10 ਇਵੈਂਟ ਕਿਸਮਾਂ |
| ਇਵੈਂਟ ਫਿਲਟਰ | — | ਪ੍ਰਤੀ-ਐਂਡਪੌਇੰਟ |
| ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ਾਂ | ਕੋਈ ਨਹੀਂ | 24 ਘੰਟਿਆਂ ਵਿੱਚ 8 ਯਤਨ |
| ਐਨਵਲਪ | type + data | type + data + event_id |
| ਸੀਕ੍ਰੇਟ ਰੋਟੇਸ਼ਨ | ਸਿੰਗਲ ਸੀਕ੍ਰੇਟ ਬਦਲਦਾ ਹੈ | ਪ੍ਰਤੀ-ਐਂਡਪੌਇੰਟ ਸੀਕ੍ਰੇਟ |
| ਮਿਟਾਏ ਬਿਨਾਂ ਅਯੋਗ ਕਰੋ | PUT /v1/webhook ਨਾਲ {"url": ""} | status=disabled |
| ਸਥਿਤੀ ਦ੍ਰਿਸ਼ਯਤਾ | — | active / disabled / failing |
| ਬਲੌਕਿੰਗ ਕਨਫਿਗਰੇਸ਼ਨ ਅਦਲਾ-ਬਦਲੀ | ਹਾਂ (telephony.incoming / web.incoming) | ਕਦੇ ਨਹੀਂ — ਸਿਰਫ਼ ਸੂਚਨਾਵਾਂ |
| ਸਭ ਤੋਂ ਵਧੀਆ ਲਈ | ਡਾਇਨਾਮਿਕ ਕਾਲ ਕਨਫਿਗਰੇਸ਼ਨ | ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਇਵੈਂਟ ਵਰਤੋਂ |
ਨਵੇਂ ਇੰਟੀਗ੍ਰੇਸ਼ਨਾਂ ਨੂੰ ਐਂਡਪੌਇੰਟ-ਅਧਾਰਿਤ ਵੈੱਬਹੁੱਕਾਂ ਰਾਹੀਂ ਇਵੈਂਟ ਵਰਤਣੇ ਚਾਹੀਦੇ ਹਨ। ਪੁਰਾਣਾ URL ਕੇਵਲ ਤਦੋਂ ਰੱਖੋ (ਜਾਂ ਜੋੜੋ) ਜੇ ਤੁਸੀਂ ਕਾਲ ਚੁੱਕਣ ਵੇਲੇ ਕਾਲਾਂ ਨੂੰ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਕਨਫਿਗਰ ਕਰਦੇ ਹੋ ਜਾਂ ਵੈੱਬਹੁੱਕ-ਮੋਡ ਟੂਲ ਡਿਸਪੈਚ ਵਰਤਦੇ ਹੋ — ਉਹ ਬੇਨਤੀ/ਜਵਾਬ ਅਦਲਾ-ਬਦਲੀਆਂ ਸਿਰਫ਼ ਪੁਰਾਣੇ ਪਾਥ 'ਤੇ ਚਲਦੀਆਂ ਹਨ।
ਸੰਬੰਧਿਤ
ਸਾਰੀਆਂ ਇਵੈਂਟ ਕਿਸਮਾਂ ਅਤੇ ਉਹਨਾਂ ਦੇ ਪੇਲੋਡ।
ਕਈ ਐਂਡਪੌਇੰਟਾਂ, ਇਵੈਂਟ ਫਿਲਟਰਾਂ ਅਤੇ ਸੀਕ੍ਰੇਟਾਂ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ।
ਕਾਲਾਂ ਕਨਫਿਗਰ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਸਰਵਰ ਨੂੰ ਜਿਸ ਬਲੌਕਿੰਗ ਬੇਨਤੀ ਦਾ ਜਵਾਬ ਦੇਣਾ ਲਾਜ਼ਮੀ ਹੈ।
ਟ੍ਰਾਂਸਕ੍ਰਿਪਟ, ਰਿਕਾਰਡਿੰਗ ਅਤੇ ਮੈਟ੍ਰਿਕਸ ਵਾਲਾ ਕਾਲ ਤੋਂ ਬਾਅਦ ਦਾ ਪੇਲੋਡ।