সার্ভার রেফারেন্স

সার্ভার বাস্তবায়ন ঐচ্ছিক. আপনি যদি এই ক্রিয়াকলাপগুলি সম্পাদন করতে চান তবে ইনস্ট্যান্স আইডি পরিষেবাটি ব্যবহার করুন:

অ্যাপ দৃষ্টান্ত সম্পর্কে তথ্য পান

একটি অ্যাপ ইন্সট্যান্স সম্পর্কে তথ্য পেতে, এই এন্ডপয়েন্টে ইনস্ট্যান্স আইডি পরিষেবাতে কল করুন, দেখানো হিসাবে অ্যাপ ইনস্ট্যান্সের টোকেন প্রদান করুন:

 https://iid.googleapis.com/iid/info/IID_TOKEN

পরামিতি

  • Authorization : কী=YOUR_API_KEY। হেডারে এই প্যারামিটার সেট করুন।
  • [ঐচ্ছিক] বুলিয়ান details : এই টোকেনের সাথে যুক্ত FCM বা GCM বিষয় সাবস্ক্রিপশন তথ্য (যদি থাকে) পেতে এই ক্যোয়ারী প্যারামিটারটিকে true সেট করুন। নির্দিষ্ট করা না থাকলে, ডিফল্ট থেকে false

ফলাফল

সফল হলে কলটি HTTP স্ট্যাটাস 200 এবং একটি JSON অবজেক্ট সহ রিটার্ন করে:

  • application - টোকেনের সাথে যুক্ত প্যাকেজের নাম।
  • authorizedEntity - প্রজেক্টআইডি টোকেনে পাঠানোর জন্য অনুমোদিত।
  • applicationVersion - অ্যাপ্লিকেশনটির সংস্করণ।
  • appSigner - প্যাকেজে প্রয়োগকৃত স্বাক্ষরের জন্য sha1 ফিঙ্গারপ্রিন্ট। কোন পক্ষ অ্যাপটিতে স্বাক্ষর করেছে তা নির্দেশ করে; উদাহরণস্বরূপ, Play Store
  • platform - টোকেনটি যে ডিভাইসের প্ল্যাটফর্মের সাথে সম্পর্কিত তা নির্দেশ করতে ANDROID , IOS বা CHROME প্রদান করে৷

details পতাকা সেট করা থাকলে:

  • rel - টোকেনের সাথে সম্পর্কিত সম্পর্ক। উদাহরণস্বরূপ, বিষয় সদস্যতা একটি তালিকা.

GET অনুরোধের উদাহরণ

https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

উদাহরণ ফলাফল

HTTP 200 OK
{
  "application":"com.iid.example",
  "authorizedEntity":"123456782354",
  "platform":"Android",
  "appSigner":"1a2bc3d4e5"
  "rel":{
    "topics":{
      "topicname1":{"addDate":"2015-07-30"},
      "topicname2":{"addDate":"2015-07-30"},
      "topicname3":{"addDate":"2015-07-30"},
      "topicname4":{"addDate":"2015-07-30"}
    }
  }
}

অ্যাপের উদাহরণের জন্য সম্পর্ক মানচিত্র তৈরি করুন

ইনস্ট্যান্স আইডি API আপনাকে অ্যাপের উদাহরণের জন্য সম্পর্ক মানচিত্র তৈরি করতে দেয়। উদাহরণ স্বরূপ, আপনি Google ক্লাউড মেসেজিং বিষয়ের একটি নিবন্ধন টোকেন ম্যাপ করতে পারেন, বিষয়টিতে অ্যাপ ইনস্ট্যান্স সাবস্ক্রাইব করে। এপিআই পৃথকভাবে এবং বাল্ক উভয় ক্ষেত্রেই এই ধরনের সম্পর্ক তৈরি করার পদ্ধতি প্রদান করে।

একটি অ্যাপ উদাহরণের জন্য একটি সম্পর্ক ম্যাপিং তৈরি করুন

একটি নিবন্ধন টোকেন এবং একটি সমর্থিত সম্পর্ক দেওয়া, আপনি একটি ম্যাপিং তৈরি করতে পারেন। উদাহরণ স্বরূপ, আপনি এই এন্ডপয়েন্টে ইন্সট্যান্স আইডি পরিষেবাতে কল করে Google ক্লাউড মেসেজিং বিষয়ের একটি অ্যাপ ইন্সট্যান্স সাবস্ক্রাইব করতে পারেন, যেমন দেখানো হয়েছে অ্যাপ ইনস্ট্যান্সের টোকেন প্রদান করে:

 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

পরামিতি

  • Authorization : কী=YOUR_API_KEY। হেডারে এই প্যারামিটার সেট করুন।

ফলাফল

সফল হলে কলটি HTTP স্থিতি 200 ফেরত দেয়।

POST অনুরোধের উদাহরণ

https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

উদাহরণ ফলাফল

HTTP 200 OK
{}

একাধিক অ্যাপ দৃষ্টান্তের জন্য সম্পর্ক মানচিত্র পরিচালনা করুন

ইনস্ট্যান্স আইডি পরিষেবার ব্যাচ পদ্ধতিগুলি ব্যবহার করে, আপনি অ্যাপের উদাহরণগুলির ব্যাচ পরিচালনা করতে পারেন। উদাহরণস্বরূপ, আপনি একটি এফসিএম বা জিসিএম বিষয়ে অ্যাপের দৃষ্টান্তগুলি বাল্ক যোগ বা অপসারণ করতে পারেন। প্রতি API কলে 1000টি পর্যন্ত অ্যাপ ইন্সট্যান্স আপডেট করতে, JSON বডিতে অ্যাপ ইনস্ট্যান্স টোকেন প্রদান করে এই এন্ডপয়েন্টে ইন্সট্যান্স আইডি পরিষেবাতে কল করুন:

 https://iid.googleapis.com/iid/v1:batchAdd

 https://iid.googleapis.com/iid/v1:batchRemove

পরামিতি

  • Authorization : কী=YOUR_API_KEY। হেডারে এই প্যারামিটার সেট করুন।
  • to : বিষয়ের নাম।
  • registration_tokens : আপনি যে অ্যাপগুলি যোগ করতে বা সরাতে চান তার জন্য IID টোকেনগুলির অ্যারে৷

ফলাফল

সফল হলে কলটি HTTP স্থিতি 200 ফেরত দেয়। খালি ফলাফল টোকেনের জন্য সফল সদস্যতা নির্দেশ করে। ব্যর্থ সাবস্ক্রিপশনের জন্য, ফলাফলে এই ত্রুটি কোডগুলির মধ্যে একটি রয়েছে:

  • NOT_FOUND — নিবন্ধন টোকেন মুছে ফেলা হয়েছে বা অ্যাপটি আনইনস্টল করা হয়েছে।
  • INVALID_ARGUMENT — প্রদত্ত নিবন্ধন টোকেন প্রেরকের আইডির জন্য বৈধ নয়।
  • অভ্যন্তরীণ — ব্যাকএন্ড সার্ভার অজানা কারণে ব্যর্থ হয়েছে৷ অনুরোধ পুনরায় চেষ্টা করুন.
  • TOO_MANY_TOPICS — অ্যাপের প্রতি উদাহরণের জন্য অতিরিক্ত সংখ্যক বিষয়।
  • RESOURCE_EXHAUSTED — অল্প সময়ের মধ্যে অনেক বেশি সাবস্ক্রিপশন বা আনসাবস্ক্রিপশনের অনুরোধ। সূচকীয় ব্যাকঅফ দিয়ে পুনরায় চেষ্টা করুন।

POST অনুরোধের উদাহরণ

https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization:key=API_KEY
{
   "to": "/topics/movies",
   "registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}

উদাহরণ ফলাফল

HTTP 200 OK
{
  "results":[
    {},
    {"error":"NOT_FOUND"},
    {},
  ]
}

APN টোকেনগুলির জন্য নিবন্ধন টোকেন তৈরি করুন৷

ইনস্ট্যান্স আইডি পরিষেবার batchImport পদ্ধতি ব্যবহার করে, আপনি বিদ্যমান iOS APN টোকেনগুলিকে Google ক্লাউড মেসেজিং বা ফায়ারবেস ক্লাউড মেসেজিং-এ বাল্ক আমদানি করতে পারেন, সেগুলিকে বৈধ রেজিস্ট্রেশন টোকেনে ম্যাপ করতে পারেন৷ JSON বডিতে APN টোকেনগুলির একটি তালিকা প্রদান করে এই শেষ পয়েন্টে ইনস্ট্যান্স আইডি পরিষেবাতে কল করুন:

 https://iid.googleapis.com/iid/v1:batchImport

রেসপন্স বডিতে ইন্সট্যান্স আইডি রেজিস্ট্রেশন টোকেনগুলির একটি অ্যারে রয়েছে যা সংশ্লিষ্ট APNs ডিভাইস টোকেনে FCM বা GCM বার্তা পাঠানোর জন্য ব্যবহার করার জন্য প্রস্তুত।

পরামিতি

  • Authorization : কী=YOUR_API_KEY। হেডারে এই প্যারামিটার সেট করুন।
  • application : অ্যাপের বান্ডেল আইডি।
  • sandbox : স্যান্ডবক্স পরিবেশ (সত্য) বা উৎপাদন (মিথ্যা) নির্দেশ করতে বুলিয়ান
  • apns_tokens : আপনি যে অ্যাপগুলি যোগ করতে বা সরাতে চান তার জন্য APNs টোকেনগুলির অ্যারে৷ প্রতি অনুরোধে সর্বোচ্চ 100টি টোকেন।

ফলাফল

সফল হলে কলটি HTTP স্ট্যাটাস 200 এবং একটি JSON ফলাফল বডি প্রদান করে। অনুরোধে প্রদত্ত প্রতিটি APN টোকেনের জন্য, ফলাফলের তালিকায় রয়েছে:

  • APNs টোকেন।
  • স্ট্যাটাস। হয় ঠিক আছে, অথবা ব্যর্থতা বর্ণনাকারী একটি ত্রুটি বার্তা।
  • সফল ফলাফলের জন্য, রেজিস্ট্রেশন টোকেন যা FCM বা GCM APNs টোকেনের সাথে ম্যাপ করে।

POST অনুরোধের উদাহরণ

https://iid.googleapis.com/iid/v1:batchImport
{
  "application": "com.google.FCMTestApp",
  "sandbox":false,
  "apns_tokens":[
      "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
      "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
   ]
  }
}

উদাহরণ ফলাফল

HTTP 200 OK
{
 "results":[
       {
        "apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
         "status": "OK",
         "registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
       },
       {
         "apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
         "status":"Internal Server Error"
        },
     ]
  }

পুশ সাবস্ক্রিপশনের জন্য নিবন্ধন টোকেন পরিচালনা করুন

ইনস্ট্যান্স আইডি পরিষেবার ওয়েব পদ্ধতি ব্যবহার করে, আপনি ফায়ারবেস ক্লাউড মেসেজিংয়ের জন্য বিদ্যমান পুশ সদস্যতা আমদানি করতে পারেন। আপনি তাদের আপডেট এবং মুছে ফেলতে পারেন।

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

পুশ সদস্যতা আমদানি করুন

আপনি InstanceID এর ওয়েব এন্ডপয়েন্ট ব্যবহার করে পুশ সাবস্ক্রিপশন আমদানি করতে পারেন:

 https://iid.googleapis.com/v1/web/iid

অনুরোধটিতে একটি OAuth 2.0 অ্যাক্সেস টোকেনে সেট করা একটি অনুমোদন শিরোনাম, আপনার অ্যাপ্লিকেশন সার্ভার কী- তে সেট করা একটি ক্রিপ্টো-কি শিরোনাম এবং অনুরোধের অংশে PushSubscription অবজেক্ট থাকতে হবে।

রেসপন্স বডিতে একটি রেজিস্ট্রেশন টোকেন রয়েছে যা পেলোড এনক্রিপ্ট না করেই সংশ্লিষ্ট ওয়েব অ্যাপ ইনস্ট্যান্সে FCM বা GCM বার্তা পাঠানোর জন্য ব্যবহার করার জন্য প্রস্তুত।

কনসোলে আপনার VAPID কী জোড়া আপলোড করুন

কী আমদানি করতে, আপনার Firebase প্রকল্পে মালিক-স্তরের অ্যাক্সেস থাকতে হবে। বেস64 ইউআরএল নিরাপদ এনকোডেড আকারে আপনার বিদ্যমান সর্বজনীন এবং ব্যক্তিগত কী আমদানি করুন:

  1. ফায়ারবেস কনসোল সেটিংস ফলকের ক্লাউড মেসেজিং ট্যাবটি খুলুন এবং ওয়েব কনফিগারেশন বিভাগে স্ক্রোল করুন।
  2. ওয়েব পুশ সার্টিফিকেট ট্যাবে, লিঙ্ক টেক্সট খুঁজুন এবং নির্বাচন করুন, "একটি বিদ্যমান কী জোড়া আমদানি করুন।"
  3. একটি কী জোড়া ডায়ালগে আমদানি করুন , সংশ্লিষ্ট ক্ষেত্রে আপনার সর্বজনীন এবং ব্যক্তিগত কীগুলি প্রদান করুন এবং আমদানিতে ক্লিক করুন। কনসোল সর্বজনীন কী স্ট্রিং এবং যোগ করা তারিখ প্রদর্শন করে।

একটি OAuth2 টোকেন পুনরুদ্ধার করুন: মিন্ট অ্যাক্সেস টোকেনগুলির জন্য শংসাপত্রগুলি ব্যবহার করুন৷

অনুরোধের জন্য একটি অ্যাক্সেস টোকেন তৈরি করার জন্য, আপনাকে অ্যাক্সেস টোকেনটি মিন্ট করতে হবে এবং এটি HTTP অনুরোধে যুক্ত করতে হবে।

node.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

পাইথন

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

জাভা

private static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

FCM-এ অ্যাক্সেস অনুমোদন করতে, https://www.googleapis.com/auth/firebase.messaging স্কোপের অনুরোধ করুন।

পরামিতি

  • অনুমোদন: Bearer <access_token> । হেডারে এই প্যারামিটার সেট করুন।
  • ক্রিপ্টো-কী: p256ecdsa=APPLICATION_PUBLIC_KEY । হেডারে এই প্যারামিটার সেট করুন।
  • রিকোয়েস্ট বডি: PushSubscription.toJson() । এটি পার্স না করেই HTTP বডিতে পুশ সাবস্ক্রিপশন পাস করুন। বিষয়বস্তু PushSubscription এর W3C এনকোডিংয়ের সাথে মেলে।

প্রতিক্রিয়া

সফল হলে কলটি HTTP স্ট্যাটাস 200 OK এবং IID টোকেন ধারণকারী JSON ফলাফল বডি প্রদান করে।

POST অনুরোধের উদাহরণ

 https://iid.googleapis.com/v1/web/iid
 Content-Type:application/json
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
 Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
 {
   "endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
   "keys": {
         "auth": "7cdY...xxjwz46Q",
         "p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
    }
 }

উদাহরণ ফলাফল

HTTP 200 OK
{
 "token":"KctODamlM4:CKrh_PC...cl"
}

পুশ সদস্যতা আপডেট করুন

আপনি নিম্নলিখিত শেষ পয়েন্ট ব্যবহার করে আপনার নিবন্ধন টোকেনের সাথে যুক্ত পুশ সাবস্ক্রিপশন আপডেট করতে পারেন:

 https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN:refresh

পরামিতি

  • অনুমোদন: Bearer <access_token> । হেডারে এই প্যারামিটার সেট করুন।
  • ক্রিপ্টো-কী: p256ecdsa=APPLICATION_PUBLIC_KEY । হেডারে এই প্যারামিটার সেট করুন।
  • রিকোয়েস্ট বডি: PushSubscription.toJson() । এটি পার্স না করেই HTTP বডিতে পুশ সাবস্ক্রিপশন পাস করুন। বিষয়বস্তু PushSubscription এর W3C এনকোডিংয়ের সাথে মেলে।

ফলাফল

সফল হলে কলটি HTTP স্ট্যাটাস 200 এবং একটি রেজিস্ট্রেশন টোকেন প্রদান করে। এটি আপনার অনুরোধে পাস করা একই টোকেন বা একটি নতুন টোকেন হতে পারে।

HTTP 200 OK
{
 "token":"KctODamlM4:CKrh_PC...cl"
}

POST অনুরোধের উদাহরণ

 https://iid.googleapis.com/v1/web/iid/KctODamlM4:CKrh_PC...cl:refresh
 Content-Type:application/json
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
 Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
 {
   "endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
   "keys": {
         "auth": "7cdY...xxjwz46Q"",
         "p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
    }
 }

উদাহরণ ফলাফল

 HTTP 200 OK
 {
  "token":"KctODamlM4:CI2k_HHw...3P1"
 }

পুশ সদস্যতা মুছুন

একটি DELETE অনুরোধ FCM ডাটাবেস থেকে পুশ সদস্যতার বিবরণ সরিয়ে দেয়। আপনি এখনও Push API প্রোটোকল ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশনে বার্তা পেতে পারেন।

একটি পুশ সাবস্ক্রিপশন মুছে ফেলতে, এখানে একটি DELETE অনুরোধ পাঠান:

 https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN

DELETE অনুরোধের উদাহরণ

 https://iid.googleapis.com/v1/web/iid/KctODamlM4:CI2k_HHw...3P1
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

উদাহরণ ফলাফল

 HTTP 200 OK {}

ত্রুটি প্রতিক্রিয়া

ইনস্ট্যান্স আইডি সার্ভার এপিআই-তে কলগুলি নিম্নলিখিত HTTP ত্রুটি কোডগুলি ফেরত দেয়:

  • HTTP status 400 (Bad request) - অনুরোধের প্যারামিটার অনুপস্থিত বা অবৈধ। বিস্তারিত তথ্যের জন্য ত্রুটি বার্তা চেক করুন.
  • HTTP status 401 (Unauthorized) - অনুমোদনের শিরোনামটি অবৈধ৷
  • HTTP status 403 (Forbidden) - অনুমোদনের শিরোনামটি authorizedEntity সাথে মেলে না।
  • HTTP status 404 (Not found) - অবৈধ HTTP পাথ বা IID টোকেন পাওয়া যায়নি। বিস্তারিত তথ্যের জন্য ত্রুটি বার্তা চেক করুন.
  • HTTP status 503 (Service unavailable) - পরিষেবা অনুপলব্ধ৷ সূচকীয় ব্যাকঅফ সহ অনুরোধটি পুনরায় চেষ্টা করুন।