புஷ் அறிவிப்புகள்
செயலி மூடியிருக்கும்போதும் அலுவலர் பதில்களையும் பிரச்சாரங்களையும், சரியான உரையாடலுக்கு நேரடியாக அழைத்துச் செல்லும் deep link-உடன் வழங்குங்கள். புஷ் அமைப்பு உங்கள் செயலிக்கே சொந்தம்; SDK டோக்கன்களைப் பதிவு செய்து உரையாடல்களைத் திறக்கிறது.
Respondo என்ன அனுப்புகிறது#
- செய்திப் புஷ்கள் — பார்வையாளர் பங்கேற்கும் ஒரு உரையாடலில் அலுவலர் அல்லது AI அளிக்கும் பதில்.
- பிரச்சாரப் புஷ்கள் — வெளிச்செல்லும் புஷ் பிரச்சாரங்கள்; இவை திறப்பு சமிக்ஞையையும் (open beacon) தெரிவிக்கின்றன.
செய்திப் புஷ்கள் எப்போதும் respondo://conversation/<id> வடிவிலான deep link ஒன்றைச் சுமந்து வருகின்றன. பிரச்சாரப் புஷ்கள் பிரச்சாரத்தில் உள்ளமைத்த deep link-ஐச் சுமந்து வருகின்றன — அது விருப்பத்தேர்வு; அமைக்கப்படாதபோது புஷ்ஷில் deep link எதுவும் இருக்காது.
Apple (APNs)#
iOS புஷ் நேரடியாக APNs வழியாகவே இயங்குகிறது — Firebase சார்பு எதுவும் இல்லை. உங்கள் Apple Developer கணக்கிலிருந்து இவற்றைப் பெறுங்கள்:
- ஒரு APNs Auth Key (
.p8token key). - அந்தச் சாவியின் 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 சாவியையும், project ID-உடன் FCM service account-ஐயும் சேருங்கள். இரண்டு தளங்களுக்கும் அனுப்ப Respondo-வுக்குத் தேவை இவ்வளவே.
Payload வடிவம்#
Payload எப்போதும் ஒரு வேர் 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"
}
}எல்லா மதிப்புகளும் flat string-கள். அறிவிப்பின் title-உம் body-உம் தளத்தின் transport வழியாக வழங்கப்படுகின்றன — APNs-இல் aps.alert, FCM-இல் message.notification — respondo object-க்குள் அல்ல.
பிரச்சாரப் புஷ்கள் திறப்பு சமிக்ஞையைத் தெரிவிக்கப் பயன்படும் delivery_id-ஐயும் உள்ளடக்குகின்றன; பிரச்சாரத்தின் push data-விலிருந்து கூடுதல் flat string சாவிகளையும் சுமந்து வரலாம்.
தட்டல்களையும் முன்னணி நிலையையும் கையாளுதல்#
அறிவிப்பைத் தட்டியதும், மூல payload-ஐ SDK-க்கு அனுப்புங்கள். அது payload-ஐப் பிரித்துப் படித்து சரியான உரையாடலைத் திறக்கிறது; அந்தப் புஷ் 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);
}