এডব্লিউএস এসএনএস সহ এফসিএম


94

আমি AWSআমার অ্যান্ড্রয়েড প্রকল্পের জন্য সংস্থানগুলি ব্যবহার করছি, আমি আমার প্রকল্পের জন্য পুশ বিজ্ঞপ্তি পরিষেবা যুক্ত করার পরিকল্পনা করছি AWS SNSt এখানে আমাকে খুব বিরক্ত করছে এমন কয়েকটি প্রশ্ন রয়েছে। আমি দু'একটি ব্যতীত এ সম্পর্কিত কোনও প্রশ্ন পাইনি তবে অস্পষ্ট ব্যাখ্যা দিয়েছি।

1.ডোস AWSসমর্থন FCM? SNSসঙ্গে কাজ GCM। তবে গুগল পরিবর্তে এফসিএম ব্যবহার করার পরামর্শ দেয় GCM। আমি AWSসমর্থন খুঁজে পাইনি FCM

২. AWSপুশ নোটিফিকেশন পাঠানোর পরেও তাদের ডাটাবেসে ম্যাসেজ (বা ডেটা) সঞ্চয় করবেন?

৩. আমি এসএনএস অ্যাপ্লিকেশন প্ল্যাটফর্মে এফসিএম এপিআই কী লাগানোর চেষ্টা করেছি, এটি কেন অবৈধ পরামিতি দেখাচ্ছে?


এসএনএস এখনও এফসিএম সমর্থন করে না, এটি জিসিএমের অবহিত সংস্করণ ব্যবহার করে। আপনি কোথা থেকে এপিআই কী পাচ্ছেন?
আর্থার থম্পসন

4
আমি যা চেষ্টা করেছি তা হ'ল, আমি এসপিএস-এর এপিসি কীটি এসএনএসে রাখার চেষ্টা করেছি এবং এটি কার্যকর হয়নি, এডাব্লুএস (এসএনএস) এ ডকটি পড়ার পরে তারা সার্ভার কী রাখার কথা উল্লেখ করেছিল। আমি এটি ভাল কাজ করার চেষ্টা করেছি। আমি এফসিএম এর জন্য এসএনএসের মাধ্যমে পুশ বিজ্ঞপ্তিগুলি পাঠাতে সক্ষম হয়েছি। কেন এটি কাজ করেছে ঠিক কারণটি জানেন না। আপনি কি নিশ্চিত যে এসএনএস বর্তমানে এফসিএম সমর্থন করে না?
নারোজু

এটি সঠিক যে GCM (এখন FCM) বার্তা প্রেরণের জন্য সার্ভার কী প্রয়োজন। ক্লায়েন্ট সাইডে (মোবাইল ডিভাইস) জিসিএম এবং এফসিএম সাধারণত একই রকম হয় তাই উভয়ই প্রত্যাশিত ফ্যাশনে বার্তা পাবেন। তবে কিছু এফসিএম বৈশিষ্ট্য রয়েছে যা কার্যকর হবে না, যেমন: টপিক মেসেজিং।
আর্থার থম্পসন

এফএমসি দিয়ে এসএনএস বিষয়গুলি ব্যবহার করা কি সম্ভব? এমন অসাধারণ উত্তরের জন্য আপনাকে ধন্যবাদ
জুয়ান জোস টিগোরস

প্রথম স্থানে এসএনএস ব্যবহার করে কী লাভ? এফসিএম কি পর্যাপ্ত হওয়া উচিত নয়?
খালেদ ওসমান

উত্তর:


192

এফসিএম জিসিএমের সাথে পিছনের দিকে সামঞ্জস্যপূর্ণ। এডাব্লুএসে এফসিএম স্থাপনের পদক্ষেপগুলি জিসিএম সেট আপ পদ্ধতির অনুরূপ এবং (অন্তত মুহূর্তের জন্য) এফসিএম সার্ভার-সাইড কনফিগারেশনের ক্ষেত্রে জিসিএম এবং এসএনএসের সাথে স্বচ্ছভাবে কাজ করে।

তবে , আপনি যদি dataঅ্যান্ড্রয়েড ডিভাইসে পেলোডগুলি প্রেরণ করছেন তবে আপনি যদি ক্লায়েন্টের সাইড পরিষেবাটি প্রসারিত না করেন তবে তাদের প্রক্রিয়া করা হবে না FirebaseMessagingService। এডাব্লুএস কনসোলে থাকা ডিফল্ট জেএসএন মেসেজ জেনারেটর dataবার্তা প্রেরণ করে, যা পূর্ববর্তী পরিষেবাগুলি প্রয়োগ না করা হলে আপনার অ্যাপ্লিকেশন দ্বারা উপেক্ষা করা হবে। প্রাথমিক পরীক্ষার জন্য এটি কাছাকাছি পেতে আপনি একটি কাস্টম notificationপেওলড সরবরাহ করতে পারেন যা আপনার ডিভাইস দ্বারা প্রাপ্ত হবে (যতক্ষণ না আপনার অ্যাপ্লিকেশনটি অগ্রভাগে নেই)

আছে জিসিএম-FCM মাইগ্রেশন নির্দেশাবলী Google দ্বারা সরবরাহিত তবে পরিবর্তন করতে হবে অ্যাপ পাশ প্রধানত হয়।

আপনার অ্যাপ্লিকেশনটিতে এসএনএসের সাহায্যে জিসিএম / এফসিএম পরীক্ষা করতে আপনার যে পদক্ষেপগুলি অনুসরণ করতে হবে তা হ'ল:

  1. একটি তৈরি করুন এসএনএস মধ্যে প্ল্যাটফর্ম অ্যাপ্লিকেশন , যেমন Google ক্লাউড মেসেজিং (জিসিএম) নির্বাচন পুশ নোটিফিকেশন প্ল্যাটফর্ম , এবং আপনার প্রদানের সার্ভার API কী মধ্যে API কী ক্ষেত্র।
  2. প্ল্যাটফর্ম অ্যাপ্লিকেশন নির্বাচন করুন এবং প্ল্যাটফর্মের শেষ পয়েন্ট তৈরি করুন বোতামটি ক্লিক করুন।
  3. আপনার অ্যাপ্লিকেশন দ্বারা উত্পাদিত InstanceID ( ডিভাইস টোকেন ) সরবরাহ করুন। আপনার অ্যান্ড্রয়েড অ্যাপের মধ্যে এটি দেখতে আপনাকে অবশ্যই পদ্ধতিটি প্রসারিত FirebaseInstanceIDServiceএবং ওভাররাইড করতে হবে onTokenRefresh। একবার আপনি এই কাজ করেছেন , আনইনস্টল এবং আপনার অ্যাপ্লিকেশন পুনরায় ইনস্টল এবং আপনার টোকেন প্রথম বুট তে Android স্টুডিওতে ডিবাগ কনসোলে প্রিন্ট করা উচিত নয়।
  4. ক্লিক করুন শেষবিন্দু যোগ বোতাম।
  5. আপনার প্ল্যাটফর্ম অ্যাপ্লিকেশনটির জন্য এআরএন লিঙ্কে ক্লিক করুন।
  6. আপনার ডিভাইসের জন্য সদ্য নির্মিত এন্ডপয়েন্টটি নির্বাচন করুন এবং শেষের পয়েন্টে প্রকাশ করুন বোতামটি ক্লিক করুন।
  7. JSON বার্তা ফর্ম্যাটটি নির্বাচন করুন এবং JSON বার্তা জেনারেটর বোতামটি ক্লিক করুন।
  8. একটি পরীক্ষার বার্তা প্রবেশ করুন এবং জেএসএন জেনারেট করুন বোতামটি ক্লিক করুন
  9. এবার আসে "গোটার অংশ"।

এসএনএস দ্বারা উত্পন্ন বার্তাটি ফর্মটির হবে:

{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}

যেমনটি আমরা আগেই উল্লেখ করেছি, dataপে-লোডগুলি গ্রহণের কোনও পরিষেবা কার্যকর না করা থাকলে তা উপেক্ষা করা হবে। আমরা খুব বেশি কোড না লিখে পরীক্ষা করতে চাই, সুতরাং পরিবর্তে আমাদের একটি notificationপেললোড প্রেরণ করা উচিত । এটি করতে, পড়ার জন্য কেবল JSON বার্তাটি পরিবর্তন করুন:

{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}

একবার এটি হয়ে গেলে, আপনার অ্যাপটি ডিভাইসে চলছে না তা নিশ্চিত করুন এবং বার্তা প্রকাশ করুন বোতামটি চাপুন। আপনার এখন আপনার ডিভাইসে একটি বিজ্ঞপ্তি পপ আপ হওয়া উচিত।

আপনি অবশ্যই এই সমস্ত প্রোগ্রামটি অ্যামাজন এসএনএস এপিআইয়ের মাধ্যমে করতে পারেন, তবে সমস্ত উদাহরণ dataপেললোডটি ব্যবহার করে বলে মনে হচ্ছে যাতে আপনার এটি বিবেচনায় রাখা উচিত এবং আপনার ব্যবহারের ক্ষেত্রে উপযুক্ত পেডলোড তৈরি করা দরকার।


4
উজ্জ্বল উত্তর, ধন্যবাদ। এটি লক্ষণীয় যে জেএসনের কনফিগারেশন বিকল্পগুলির সাথে কিছু গভীরতা রয়েছে - দেখুন ডেভেলপারস জিও / ক্লাউড- ম্যাসেজিং / কনসেপ্ট- ওপশন - যদিও আমি কোনও এফসিএম-নির্দিষ্ট কার্যকারিতা পরীক্ষা করে দেখিনি।
টম

dataক্লায়েন্ট অ্যাপ্লিকেশন FCM তবে GCM প্রয়োগ না করলেও বার্তাগুলি sns ব্যবহার করে দুর্দান্ত কাজ করছে। আমার অ্যাপ্লিকেশনটিতে আমি ক্লায়েন্টের পাশে এফসিএম আপগ্রেড করেছি না তবে এসএনএস ব্যবহার করে এফসিএম dataবার্তাগুলির জন্যও দুর্দান্ত কাজ করে। এটা কাজ করা উচিত নয়?
সাশ_কেপি

4
এসএনএস জিসিএম ব্যবহার করে তাই আপনি যদি সিসিএম ক্লায়েন্ট ব্যবহার করছেন তবে এটি স্বাভাবিক হিসাবে আচরণ করা উচিত (গুগল জিসিএম অবসর নেওয়ার সিদ্ধান্ত নেওয়ার আগ পর্যন্ত)। এই প্রশ্নটি এডাব্লুএসে এফসিএম সমর্থন (যা গুগল এপিআই পাশের পিছনে সামঞ্জস্যের মাধ্যমে সমর্থিত) আরও করতে হবে
নাথান ডান

এফএমসি দিয়ে এসএনএস বিষয়গুলি ব্যবহার করা কি সম্ভব? এমন অসাধারণ উত্তরের জন্য আপনাকে ধন্যবাদ
জুয়ান জোসে টিগোরস

স্বাগতম - হ্যাঁ, আপনি স্বতন্ত্রভাবে মোবাইল পুশ সাবস্ক্রাইব করতে পারেন (যেমন। জিসিএম-> এফসিএম) একটি এসএনএস বিষয়কে সাধারণ হিসাবে শেষ পর্যন্ত, তবে এটি এডাব্লুএসের মধ্যে বিশাল সংখ্যক বার্তা উত্পন্ন করবে। আপনি যদি এফসিএম ক্লায়েন্টের পাশে ব্যবহার করেন তবে অন্য বিকল্প হ'ল এফসিএম বিষয় বা ব্যবহারকারী বিভাগ যা কেবলমাত্র গুগলের সার্ভারগুলির মাধ্যমে ভ্রমণ করবে
নাথান ডান

14

এখন আপনি আপনার ফায়ারবেস কনসোলে যেতে পারেন ( https://console.firebase.google.com/ ) আপনার প্রকল্প নির্বাচন করুন, গিয়ার আইকনটি ক্লিক করুন এবং প্রকল্প সেটিংস চয়ন করুন, তারপরে ক্লাউড মেসেজিং ট্যাবে ক্লিক করুন ...

আপনি লিগ্যাসি সার্ভার কীটি দেখতে পাবেন যা জিসিএম এপিআই কী এবং আপনার কাছে নতুন সার্ভার কী তৈরি করার বিকল্প থাকবে যা এফসিএম সংস্করণ

এসএনএস উভয় সংস্করণ গ্রহণ করবে তবে তাদের মেনু বিকল্পটি এখনও এটি জিসিএমের অধীনে শ্রেণিবদ্ধ করছে

আপনার রেফারেন্সের জন্য এখানে চিত্র:

এখানে চিত্র বর্ণনা লিখুন

মনে রাখবেন যে আপনি আপনার সার্ভার কীগুলি "দুর্ঘটনাক্রমে" মুছে ফেলতে পারেন তবে লিগ্যাসি সার্ভার কীটি অপসারণযোগ্য নয়। এছাড়াও, আপনি যদি অ্যাড সার্ভার কী বোতামটি ক্লিক করেন, আপনি প্রথমে নীচে একটি নতুন সার্ভার কী পাবেন, কোনও সতর্কতা ছাড়াই! ... চমৎকার কাজ গুগল;)


6

নাথান ডানের দুর্দান্ত উত্তরটির জন্য আরও একটি অতিরিক্ত নোট। ফায়ারবেসে এসএনএস থেকে বিজ্ঞপ্তি সহ ডেটা কীভাবে প্রেরণ করা যায়।

আমাদের জসনে ডেটা যুক্ত করতে হবে (বিজ্ঞপ্তির অভ্যন্তরে):

{
    "default": “any value", 
     "GCM": "{ \"notification\": { \"body\": \message body\, \title\: \message title \, \"sound\":\"default\" } , \"data\" : {\key\" : \value\", \key2\" : \value\ } }”
}

আপনার ফায়ারবেসমেজিংসেবা বাস্তবায়নে (জ্যামারিন উদাহরণ)

public override void OnMessageReceived(RemoteMessage message)
{

    try
    {

        var body = message?.GetNotification()?.Body;
        var title = message?.GetNotification()?.Title;
        var tag = message?.GetNotification()?.Tag;
        var sound = message?.GetNotification()?.Sound;

        var data = message?.Data
        foreach (string key in data.Keys)
        {
            // get your data values here
        }

    }
    catch (Exception e)
    {
    }
}

এফসিএম টোকেন কোথায়?
জেপিএম

আমি কীভাবে
পেডলোডে

5

আমি ডেটার পরিবর্তে বিজ্ঞপ্তি পেইড সহ সমাধানটি ব্যবহার করার চেষ্টা করেছি, তবে আমি মোবাইল ডিভাইসে পুশ বিজ্ঞপ্তি পাইনি ifications আমি এই টিউটোরিয়ালটি পেয়েছি https://youtu.be/iBTFLu30dSg ইংলিশ উপশিরোনামের সাথে কীভাবে এডাব্লুএস এসএনএসের ধাপে ধাপে এফসিএম ব্যবহার করতে হয় এবং কীভাবে অ্যাডাব্লুএস কনসোল থেকে পুশ বিজ্ঞপ্তি প্রেরণ করা যায় এবং উদাহরণস্বরূপ পিএইচপি এসডিপি সহ এটি পিএইচপি প্রয়োগ করতে হয় of এটা আমাকে অনেক সাহায্য করেছে।


3

নাথন ডান এর উত্তরে কেবল একটি অতিরিক্ত নোট: শব্দ যোগ করতে নিম্নলিখিত JSON বার্তাটি ব্যবহার করুন

{
"GCM": "{ \"notification\": { \"text\": \"test message\",\"sound\":\"default\" } }"
}

আমি কীভাবে
পে-লোডে

0

সঠিক পে-লোড (প্রবন্ধে প্রকাশ করুন) দিয়ে কীভাবে বিজ্ঞপ্তিটি প্রেরণ করা যায় তা নির্ধারণ করতে আমার কিছুটা সময় লেগেছে। সুতরাং আমি এটি এখানে রাখব।

private void PublishToTopic(string topicArn)
{
    AmazonSimpleNotificationServiceClient snsClient = 
           new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.EUWest1);
    PublishRequest publishRequest = new PublishRequest();
    publishRequest.TopicArn = topicArn;
    publishRequest.MessageStructure = "json";
    string payload = "\\\"data\\\":{\\\"text\\\":\\\"Test \\\"}";
    publishRequest.Message = "{\"default\": \"default\",\"GCM\":\"{" + payload + "}\"}";
    PublishResponse publishResult = snsClient.Publish(publishRequest);
}    

0

পূর্ববর্তী সমস্ত কোডটি জিসিএম থেকে এফসিএম-তে স্থানান্তরিত হওয়ার কারণে অ্যামাজন এফসিএম সমর্থন করে। নীচের নিবন্ধটি বিস্তারিতভাবে ব্যাখ্যা করে।

অ্যামাজন দ্বারা নিবন্ধ প্রকাশিত


এটি পড়তে হবে যেহেতু অ্যামাজন জিসিএম সমর্থন করে না
শিভা কার্তিকেইকান

-1

প্রশ্নের উত্তর দিতে:

  1. এডাব্লুএস এসএনএস এফসিএম সমর্থন করে।
  2. কোনও AWS পুশ বিজ্ঞপ্তি প্রেরণের পরে বার্তা সঞ্চয় করে না।

এসএনএসের সাথে এফসিএম স্থাপনের বিষয়ে বিস্তারিত টিউটোরিয়ালের জন্য দয়া করে এই নিবন্ধটি পড়ুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.