పుష్ నోటిఫికేషన్లు
యాప్ మూసి ఉన్నప్పుడు కూడా ఆపరేటర్ జవాబులను, కాంపెయిన్లను చేరవేయండి — సరైన సంభాషణలోకి నేరుగా తీసుకెళ్లే డీప్ లింక్తో. పుష్ సబ్సిస్టమ్ మీ యాప్దే; SDK టోకెన్లను నమోదు చేసి సంభాషణలను తెరుస్తుంది.
Respondo ఏం పంపుతుంది#
- మెసేజ్ పుష్లు — సందర్శకుడు భాగమైన సంభాషణలో ఆపరేటర్ లేదా AI ఇచ్చిన జవాబు.
- కాంపెయిన్ పుష్లు — బయటకు వెళ్లే పుష్ కాంపెయిన్లు; ఇవి ఓపెన్ బీకన్ను కూడా నివేదిస్తాయి.
మెసేజ్ పుష్లు ఎప్పుడూ respondo://conversation/<id> రూపంలోని డీప్ లింక్ను మోసుకొస్తాయి. కాంపెయిన్ పుష్లు కాంపెయిన్పై కాన్ఫిగర్ చేసిన డీప్ లింక్ను మోసుకొస్తాయి — అది ఐచ్ఛికం; సెట్ చేయకపోతే పుష్లో డీప్ లింక్ ఉండదు.
Apple (APNs)#
iOS పుష్ నేరుగా APNsపైనే నడుస్తుంది — Firebase అవసరం లేదు. మీ Apple Developer ఖాతా నుంచి వీటిని తీసుకోండి:
- APNs Auth Key (
.p8టోకెన్ కీ). - ఆ కీ యొక్క Key ID.
- మీ Team ID.
- యాప్ bundle id.
Google (FCM)#
Android పుష్ Firebase Cloud Messaging ద్వారా వెళ్తుంది. మీ Firebase ప్రాజెక్ట్ నుంచి వీటిని తీసుకోండి:
- Cloud Messaging రోల్ ఉన్న service account JSON.
- Firebase project ID (Firebase console → Project settings) — డ్యాష్బోర్డ్ పుష్ ఫారంలో service-account JSON పక్కన దాని సొంత ఫీల్డ్గా నమోదు చేస్తారు.
- Android యాప్ package name; అలాగే యాప్ను అదే Firebase ప్రాజెక్ట్కు కనెక్ట్ చేయండి (
google-services.json).
Respondoలో కాన్ఫిగర్ చేయడం#
డ్యాష్బోర్డ్లో మీ విడ్జెట్ ఛానెల్కు APNs కీని, FCM service accountను దాని project IDతో పాటు జోడించండి. రెండు ప్లాట్ఫామ్లకూ పంపడానికి Respondoకు కావాల్సింది అంతే.
పేలోడ్ ఫార్మాట్#
పేలోడ్ ఎప్పుడూ రూట్లోని respondo కీ కిందే ఉంటుంది — ఆ కీ ఉండటాన్ని బట్టే SDK తన పుష్ను ఇతరుల పుష్ల నుంచి వేరు చేస్తుంది (iOSలో userInfoలో, Androidలో data["respondo"]లో JSON స్ట్రింగ్గా).
{
"respondo": {
"type": "message",
"conversation_id": "a1c4e7b2-5d38-4f6a-9e10-3b7c2d5f8a90",
"message_id": "e9a3c1f6-4b8d-4e0a-b5f3-1d7b2a4e9c63",
"deep_link": "respondo://conversation/a1c4e7b2-5d38-4f6a-9e10-3b7c2d5f8a90"
}
}విలువలన్నీ ఫ్లాట్ స్ట్రింగ్లు. నోటిఫికేషన్ టైటిల్, బాడీ ప్లాట్ఫామ్ ట్రాన్స్పోర్ట్ ద్వారా అందుతాయి — APNsలో aps.alert, FCMలో message.notification — respondo ఆబ్జెక్ట్ లోపల కాదు.
కాంపెయిన్ పుష్లలో ఓపెన్ బీకన్ను నివేదించడానికి వాడే delivery_id కూడా ఉంటుంది; అలాగే కాంపెయిన్ పుష్ డేటా నుంచి అదనపు ఫ్లాట్ స్ట్రింగ్ కీలు ఉండవచ్చు.
ట్యాప్లు & ఫోర్గ్రౌండ్ నిర్వహణ#
నోటిఫికేషన్ను ట్యాప్ చేసినప్పుడు ముడి పేలోడ్ను SDKకు అప్పగించండి. అది పేలోడ్ను పార్స్ చేసి సరైన సంభాషణను తెరుస్తుంది; పుష్ Respondoది కాకపోతే false తిరిగి ఇస్తుంది (ఆ సందర్భంలో దాన్ని మీరే నిర్వహించండి).
Android: RespondoPushPayload.from(data)?.let { Respondo.handlePush(it) }
iOS: Respondo.handlePush(userInfo: userInfo)
Flutter: Respondo.handlePushData(message.data)నకిలీలను message_id ఆధారంగా ఒకటిగా కలిపేస్తారు; అదే సంభాషణ ఫోర్గ్రౌండ్లో తెరిచి ఉన్నంతసేపు సిస్టమ్ నోటిఫికేషన్ చూపబడదు — ఈ రెండింటినీ SDK తనే చూసుకుంటుంది.
డివైస్ టోకెన్ల నమోదు#
మీ యాప్ తన పుష్ సబ్సిస్టమ్ నుంచి డివైస్ టోకెన్ను తీసుకుని setPushTokenకు అందిస్తుంది. లాగ్ అవుట్ అయినప్పుడు clearPushTokenని కాల్ చేయండి.
- Android —
FirebaseMessaging.getToken()ఇచ్చే FCM రిజిస్ట్రేషన్ టోకెన్. - iOS (నేటివ్) —
didRegisterForRemoteNotificationsWithDeviceTokenఇచ్చే APNs డివైస్ టోకెన్ (hex). - Flutter ద్వారా iOS (firebase_messaging) —
getToken()కాదు,getAPNSToken()వాడండి. iOSలో FCM టోకెన్ ఇస్తే అది APNsకు వెళ్తుంది; అక్కడ అది చెల్లుబాటయ్యే డివైస్ టోకెన్ కాదు కాబట్టి పుష్లు అస్సలు రావు. యాప్ ప్రారంభమైన తొలి క్షణాల్లోgetAPNSToken()null కావచ్చు — అలా అయితే కాస్త ఆగి మళ్లీ ప్రయత్నించండి.
override fun onNewToken(token: String) {
Respondo.setPushToken(token)
}func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
let token = deviceToken.map { String(format: "%02x", $0) }.joined()
Respondo.setPushToken(token)
}// iOSకు APNs టోకెన్ కావాలి; Androidకు FCM టోకెన్ కావాలి.
final token = Platform.isIOS
? await FirebaseMessaging.instance.getAPNSToken()
: await FirebaseMessaging.instance.getToken();
if (token != null) Respondo.setPushToken(token);
// FCM తన రిజిస్ట్రేషన్ టోకెన్ను మారుస్తూ ఉంటుంది; Androidను సింక్లో ఉంచండి.
if (!Platform.isIOS) {
FirebaseMessaging.instance.onTokenRefresh.listen(Respondo.setPushToken);
}