এই কুইকস্টার্টে, আপনি আপনার অ্যাকাউন্টের জন্য একটি OAuth টোকেন পাবেন এবং এক্সপোর্ট করা ডেটা ফিল্টার করতে টাইমস্ট্যাম্প ব্যবহার করে ডেটা পোর্টেবিলিটি API এন্ডপয়েন্টে অনুরোধ পাঠান।
সময়-ভিত্তিক অ্যাক্সেস সহ ডেটা পোর্টেবিলিটি API কীভাবে ব্যবহার করতে হয় এবং সমর্থিত সংস্থানগুলির জন্য সময় ফিল্টারগুলি প্রয়োগ করতে হয় তা এই কুইকস্টার্ট কভার করে। ব্যবহারকারীর ডেটাতে সময়-ভিত্তিক অ্যাক্সেস সম্পর্কে আরও বিশদ বিবরণের জন্য, সময়-ভিত্তিক অ্যাক্সেস ব্যবহার করুন দেখুন।
আপনি কি শিখুন
এই কুইকস্টার্টে আপনি শিখবেন কিভাবে:
-  আপনার শেষ রপ্তানির পর থেকে শুধুমাত্র নতুন ডেটা রপ্তানি করতে InitiatePortabilityArchiveএন্ডপয়েন্টে পুনরাবৃত্ত প্রমাণীকৃত অনুরোধ পাঠান।
-  InitiatePortabilityArchiveএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান শুধুমাত্র গত 6 মাসের ডেটা এক্সপোর্ট করতে।
-  InitiatePortabilityArchiveএন্ডপয়েন্টে একটি প্রমাণিত অনুরোধ পাঠান শুধুমাত্র একটি নির্দিষ্ট সময়কাল থেকে ডেটা এক্সপোর্ট করতে।
পূর্বশর্ত
এই কুইকস্টার্ট চালানোর জন্য, আপনাকে করতে হবে:
- যাচাই করুন যে ডেটা পোর্টেবিলিটি API আপনার অবস্থানের ব্যবহারকারীদের জন্য উপলব্ধ। সমর্থিত দেশ এবং অঞ্চলগুলির একটি তালিকার জন্য, "একটি তৃতীয় পক্ষের সাথে আপনার ডেটার একটি অনুলিপি ভাগ করুন" পৃষ্ঠায় সাধারণ প্রশ্নগুলি দেখুন৷
- ডেটা পোর্টেবিলিটি API-এর জন্য সেটআপ পদক্ষেপগুলি সম্পূর্ণ করুন৷
-  JavaScript ওয়েব অ্যাপের জন্য OAuth কনফিগার করার ধাপগুলি অনুসরণ করুন। উৎপাদনে, আপনি সাধারণত ওয়েব সার্ভার অ্যাপ্লিকেশনের জন্য OAuth প্রবাহের মতো একটি ভিন্ন প্রবাহ ব্যবহার করবেন। সরলতার জন্য, এই কুইকস্টার্ট জাভাস্ক্রিপ্ট ওয়েব অ্যাপ ফ্লো ব্যবহার করে।- আপনি যখন আপনার অনুমোদনের শংসাপত্র তৈরি করেন, তখন আপনার OAuth 2.0 ক্লায়েন্ট আইডি এবং আপনার অনুমোদিত রিডাইরেক্ট URI (উদাহরণস্বরূপ, https://google.com) একটি নোট করুন। কুইকস্টার্টে পরে আপনার সেগুলি দরকার৷
-  আপনি যখন ডেটা পোর্টেবিলিটি API-এর জন্য স্কোপগুলি কনফিগার করেন , তখন মনে রাখবেন যে এই কুইকস্টার্টটি myactivity.searchরিসোর্স গ্রুপ ব্যবহার করে: https://www.googleapis.com/auth/dataportability.myactivity.search।
- আপনি যখন অ্যাক্সেসের অনুমতি দিতে চান এমন সময় নির্বাচন করার সময়, সময়-ভিত্তিক অ্যাক্সেসের সাথে সময় ফিল্টারিং পরীক্ষা করার জন্য আপনার 30 দিন নির্বাচন করা উচিত। (টাইম ফিল্টারগুলি এককালীন অ্যাক্সেসের সাথেও কাজ করে)।
 
- একটি OAuth টোকেন পান।
- আপনার প্রতিষ্ঠানের মালিকানাধীন বা নিয়ন্ত্রিত অ্যাকাউন্টে অ্যাক্সেস পান। এই অ্যাকাউন্টের সার্চ অ্যাক্টিভিটি ডেটা এই কুইকস্টার্টে এক্সপোর্ট করা হয়।
একটি OAuth টোকেন পান
এই কুইকস্টার্টের জন্য, আপনি একটি URL ব্যবহার করে একটি OAuth টোকেন পাওয়ার জন্য একটি অনুমোদনের অনুরোধ পাঠান। এই প্রক্রিয়াটি JavaScript ওয়েব অ্যাপের জন্য প্রবাহ ব্যবহার করে। এই প্রবাহটি রিফ্রেশ টোকেন ফেরত দেয় না।
একটি প্রোডাকশন অ্যাপের জন্য, আপনি সাধারণত একটি রিফ্রেশ টোকেন পেতে একটি OAuth ফ্লো ব্যবহার করবেন যা চাহিদা অনুযায়ী অ্যাক্সেস টোকেন তৈরি করতে ব্যবহার করা যেতে পারে। এর একটি উদাহরণ হবে সার্ভার-সাইড ওয়েব অ্যাপের প্রবাহ।
একটি OAuth টোকেন পেতে:
- নিচের মত একটি URL রচনা করুন। - https://accounts.google.com/o/oauth2/v2/auth? client_id=client_id& redirect_uri=redirect_uri& response_type=token& scope=https://www.googleapis.com/auth/dataportability.myactivity.search& state=developer-specified-value - URL-এ: -  client_idহল আপনার OAuth ক্লায়েন্ট আইডি।
-  redirect_uriহল আপনার অনুমোদিত রিডাইরেক্ট URI; উদাহরণস্বরূপ, https://google.com।
 - লক্ষ্য করুন যে এই কুইকস্টার্টের জন্য ইউআরএলে যে স্কোপ ব্যবহার করা হয়েছে সেটি হল সার্চ অ্যাক্টিভিটি স্কোপ। আপনি সময় ফিল্টার সমর্থন করে এমন কোনো স্কোপ ব্যবহার করতে পারেন। 
-  
- আপনার ব্রাউজারের ঠিকানা বারে URLটি আটকান এবং OAuth প্রবাহের ধাপগুলি অনুসরণ করুন৷ এই প্রবাহের জন্য আপনাকে আপনার প্রতিষ্ঠানের মালিকানাধীন বা নিয়ন্ত্রিত অ্যাকাউন্টে সাইন ইন করতে হবে যা আপনি এই দ্রুত শুরুর জন্য ব্যবহার করছেন। - এটি সেই অ্যাকাউন্ট যা OAuth স্কোপের সাথে সম্মতি দিচ্ছে। সম্মতি স্ক্রিনটি এইরকম হওয়া উচিত (আপনার স্ক্রিনের পাঠ্য এই চিত্রের পাঠ্য থেকে আলাদা হতে পারে):  
- অ্যাক্সেস মঞ্জুর করার সুযোগ এবং অ্যাকাউন্টের ডেটাতে অ্যাক্সেস ভাগ করার সময় দৈর্ঘ্য (একবার, 30 দিন বা 180 দিন) চয়ন করুন। এই দ্রুত শুরুর জন্য, 30 দিন বেছে নিন। (টাইম ফিল্টারগুলি এককালীন অ্যাক্সেসের সাথেও কাজ করে।) 
- সম্মতি দেওয়ার পরে এবং অ্যাক্সেসের সময়কাল নির্ধারণ করার পরে, আপনাকে রিডাইরেক্ট URI—https://google.com-এ ফরোয়ার্ড করা উচিত। ঠিকানা বারে তৈরি করা URLটিতে OAuth অ্যাক্সেস টোকেন অন্তর্ভুক্ত রয়েছে। - উদাহরণ স্বরূপ, যদি ব্যবহারকারীর অ্যাকাউন্ট - dataportability.myactivity.searchস্কোপে OAuth-কে অ্যাক্সেস দেয়, তাহলে জেনারেট করা ইউআরএল দেখতে এইরকম হবে:- https://google.com/#state=developer-specified-value&access_token=your_OAuth_token&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/dataportability.myactivity.search - URL-এ, your_OAuth_token হল একটি স্ট্রিং যা টোকেনকে উপস্থাপন করে। 
- OAuth টোকেন যাচাই করতে, আপনার ব্রাউজারে এই URL পেস্ট করুন: - https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=your_OAuth_token - প্রতিক্রিয়া এই মত হওয়া উচিত: - { "azp": <your_azp_value>, "aud": <your_aud_value>, "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search", "exp": "1694210968", "expires_in": "3334", "access_type": "online" }- অনুরোধ করার জন্য আপনার - azpবা- audফিল্ডের প্রয়োজন নেই।- azpক্ষেত্রটি অনুমোদিত উপস্থাপকের- client_idপ্রতিনিধিত্ব করে, এবং- audক্ষেত্রটি সেই শ্রোতাদের সনাক্ত করে যার জন্য এই টোকেনটি তৈরি করা হয়েছে, যা আপনার আবেদনের জন্য ক্লায়েন্ট আইডিগুলির একটির সমান হবে৷
- আপনার OAuth টোকেন এবং আপনার API কী সংগ্রহ করুন। ডেটা পোর্টেবিলিটি API-তে কল করার জন্য আপনার এগুলোর প্রয়োজন। 
শেষ পয়েন্টে অনুরোধ পাঠান
এই কুইকস্টার্টে আপনি রপ্তানি করা ডেটা ফিল্টার করতে টাইমস্ট্যাম্প সহ ডেটা পোর্টেবিলিটি API এন্ডপয়েন্টে কল করতে কার্ল কমান্ড ব্যবহার করেন৷ এই কমান্ডগুলির জন্য আপনার আগে সংগ্রহ করা OAuth টোকেন এবং API কী প্রয়োজন৷
সর্বশেষ রপ্তানি থেকে ডেটা
 আপনার শেষ রপ্তানির পর থেকে নতুন ডেটা রপ্তানি করতে আপনি সময়-ভিত্তিক অ্যাক্সেস সহ টাইম ফিল্টার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, সুযোগ বিবেচনা করুন https://www.googleapis.com/auth/dataportability.myactivity.search ।
- প্রথমে, আপনি - InitiatePortabilityArchiveএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান। এই অনুরোধটি সম্পূর্ণ ডেটা কর্পাসের জন্য একটি সংরক্ষণাগার কাজ শুরু করে।- নিম্নলিখিত কার্ল কমান্ড চালান: - curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"]}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate - আদেশে: -  your_OAuth_tokenহল আপনার OAuth টোকেন।
 - InitiatePortabilityArchiveঅনুরোধ একটি- archiveJobIdএবং- accessTypeপ্রদান করে। কাজের আইডি ডেটা সংরক্ষণাগারের অবস্থা পুনরুদ্ধার করতে ব্যবহার করা হয় এবং অ্যাক্সেসের ধরন নির্ধারণ করে যে আপনাকে ডেটাতে এক-বার বা সময়-ভিত্তিক অ্যাক্সেস দেওয়া হয়েছে কিনা। সময়-ভিত্তিক অ্যাক্সেসের জন্য, আপনি দেখতে পাবেন:- { "archiveJobId": "<your_job_id_1>" "accessType": "ACCESS_TYPE_TIME_BASED" }- আপনি একটি বৈধ OAuth টোকেন প্রদান করতে ব্যর্থ হলে, এই ত্রুটি বার্তাটি ফেরত দেওয়া হয়: - Request had invalid authentication credentials. Expected OAuth 2.0 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. 
-  
- এর পরে, আপনি আর্কাইভ কাজের স্থিতি পুনরুদ্ধার করতে - GetPortabilityArchiveStateএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান।- নিম্নলিখিত কার্ল কমান্ড চালান: - curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/your_job_id_1/portabilityArchiveState - আদেশে: -  your_OAuth_tokenহল আপনার OAuth টোকেন।
-  your_job_id_1হল চাকরির আইডি যাInitiatePortabilityArchiveঅনুরোধ দ্বারা ফেরত দেওয়া হয়।
 - প্রতিক্রিয়া কাজের অবস্থার উপর ভিত্তি করে। কাজ সম্পূর্ণ না হলে, প্রতিক্রিয়া বর্তমান অবস্থা প্রদান করে। কাজ সম্পূর্ণ না হওয়া পর্যন্ত আপনাকে পর্যায়ক্রমে এই এন্ডপয়েন্টে অনুরোধ পাঠাতে হবে। - { "state": "IN_PROGRESS" }- কাজটি সম্পূর্ণ হলে, প্রতিক্রিয়াতে রাজ্য এবং এক বা একাধিক স্বাক্ষরিত URL থাকে যা ডেটা সংরক্ষণাগার ডাউনলোড করতে ব্যবহৃত হয়। এছাড়াও একটি - export_timeক্ষেত্র রয়েছে যা টাইমস্ট্যাম্পের প্রতিনিধিত্ব করে যখন- InitiatePortabilityArchiveএ প্রথম কল করা হয়েছিল।- { "state": "COMPLETE", "urls": [ "<signed_url>" ] "export_time": "<timestamp_of_first_initiate_request>" }- ডেটা সংরক্ষণাগারটি ডাউনলোড করতে আপনার ব্রাউজারে স্বাক্ষরিত URLটি আটকান৷ আপনার সংরক্ষণাগারের বিষয়বস্তু পরীক্ষা করা উচিত যাতে এটি প্রত্যাশিত অনুসন্ধান কার্যকলাপ ডেটা ধারণ করে। - আপনি যদি প্রতিক্রিয়াতে একটি - FAILEDঅবস্থা পান, আপনি- RetryPortabilityArchiveপদ্ধতি ব্যবহার করে রপ্তানির পুনরায় চেষ্টা করতে পারেন।
-  
- কমপক্ষে 24 ঘন্টা অপেক্ষা করুন এবং তারপর ধাপ 1-এর মতো একই কমান্ড ব্যবহার করে - InitiatePortabilityArchiveজন্য আরেকটি অনুরোধ করুন, তবে এবার- start_timeহিসাবে- export_timeব্যবহার করুন।- curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": timestamp_of_first_initiate_request}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate - সময়-ভিত্তিক অ্যাক্সেসের জন্য, এটি ফিরে আসবে: - { "archiveJobId": "<your_job_id_2>" "accessType": "ACCESS_TYPE_TIME_BASED" }
- আর্কাইভ কাজের স্থিতি পুনরুদ্ধার করতে - GetPortabilityArchiveStateএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠাতে ধাপ 2 পুনরাবৃত্তি করুন (- <your_job_id_2>ব্যবহার করে)।
- কাজ সম্পূর্ণ হলে, প্রতিক্রিয়া হবে: - { "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": timestamp_of_first_initiate_request, "export_time": timestamp_of_second_initiate_request }
- যাচাই করুন যে দ্বিতীয় রপ্তানির ডেটাতে শুধুমাত্র প্রথম রপ্তানির পরে উত্পন্ন নতুন ডেটা রয়েছে৷ 
গত 6 মাসের ডেটা
আপনি সম্পূর্ণ কর্পাসের পরিবর্তে শুধুমাত্র সাম্প্রতিক ডেটা রপ্তানি করতে টাইম ফিল্টার ব্যবহার করতে পারেন।
- ধরুন আজকের তারিখ হল - 2024-10-01এবং আপনি শেষ 6 মাসের ডেটা রপ্তানি করতে চান৷ প্রথমে, আপনি "2024-04-01T00:00:00Z" এর- start_timeসহ- InitiatePortabilityArchiveএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান।- নিম্নলিখিত কার্ল কমান্ড চালান: - curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": "2024-04-01T00:00:00Z"}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate - সময়-ভিত্তিক অ্যাক্সেসের জন্য, এটি ফিরে আসবে: - { "archiveJobId": "job_id_1" "accessType": "ACCESS_TYPE_TIME_BASED" }
- আর্কাইভ কাজের স্থিতি পুনরুদ্ধার করতে - GetPortabilityArchiveStateএন্ডপয়েন্টে একটি অনুরোধ করুন।- নিম্নলিখিত কার্ল কমান্ড চালান: - curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/job_id_1/portabilityArchiveState - কাজ সম্পূর্ণ হলে, প্রতিক্রিয়া হবে: - { "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": "2024-04-01T00:00:00Z", "export_time": "2024-10-01T00:00:00Z" }- মনে রাখবেন যে - start_timeহল- start_timeধাপ 1 এ নির্দিষ্ট করা হয়েছে এবং- export_timeহল টাইমস্ট্যাম্প যখন- InitiatePortabilityArchiveএ কল করা হয়েছিল 1 ধাপে।
- যাচাই করুন যে রপ্তানিতে শুধুমাত্র গত ছয় মাসের ডেটা রয়েছে। 
একটি নির্দিষ্ট সময়কাল থেকে ডেটা
আপনি তারিখের একটি নির্দিষ্ট পরিসর থেকে ডেটা রপ্তানি করতে টাইম ফিল্টার ব্যবহার করতে পারেন, যেমন শুধুমাত্র 2023 থেকে ডেটা।
- প্রথমে, আপনি "2023-01-01T00:00:00Z" এর - start_timeএবং "2023-12-31T23:59:59Z" এর একটি- end_timeসহ- InitiatePortabilityArchiveএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান।- নিম্নলিখিত কার্ল কমান্ড চালান: - curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": "2023-01-01T00:00:00Z", "end_time": "2023-12-31T23:59:59Z"}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate - সময়-ভিত্তিক অ্যাক্সেসের জন্য, এটি ফিরে আসবে: - { "archiveJobId": "job_id_1" "accessType": "ACCESS_TYPE_TIME_BASED" }
- আর্কাইভ কাজের স্থিতি পুনরুদ্ধার করতে - GetPortabilityArchiveStateএন্ডপয়েন্টে একটি অনুরোধ করুন।- নিম্নলিখিত কার্ল কমান্ড চালান: - curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/job_id_1/portabilityArchiveState - কাজ সম্পূর্ণ হলে, প্রতিক্রিয়া হবে: - { "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": "2023-01-01T00:00:00Z", "export_time": "2023-12-31T23:59:59Z" }- মনে রাখবেন যে - start_timeহল- start_timeধাপ 1 এ উল্লেখ করা হয়েছে এবং- export_timeধাপ 1 এ দেওয়া- end_timeসমান।
- যাচাই করুন যে এক্সপোর্টে শুধুমাত্র 2023 সালের ডেটা রয়েছে। 
সমর্থিত সুযোগ
নিম্নলিখিত স্কোপ টাইম ফিল্টার সমর্থন করে:
-  https://www.googleapis.com/auth/dataportability.myactivity.youtube
-  https://www.googleapis.com/auth/dataportability.myactivity.maps
-  https://www.googleapis.com/auth/dataportability.myactivity.search
-  https://www.googleapis.com/auth/dataportability.myactivity.myadcenter
-  https://www.googleapis.com/auth/dataportability.myactivity.shopping
-  https://www.googleapis.com/auth/dataportability.myactivity.play
-  https://www.googleapis.com/auth/dataportability.chrome.history
 সতর্কতা: সমর্থিত এবং অসমর্থিত স্কোপের মিশ্রণের সময়-ফিল্টার করা অনুরোধের ফলে একটি INVALID_ARGUMENT ত্রুটি দেখা দেয় যা বলে The requested resources do not support time filters ৷