এই কুইকস্টার্টে, আপনি আপনার অ্যাকাউন্টের জন্য একটি OAuth টোকেন পাবেন এবং আপনি ডেটা পোর্টেবিলিটি API এন্ডপয়েন্টে এককালীন অনুরোধ পাঠাবেন।
ব্যবহারকারীর ডেটাতে এককালীন অ্যাক্সেসের জন্য কীভাবে ডেটা পোর্টেবিলিটি API ব্যবহার করতে হয় তা এই কুইকস্টার্ট কভার করে৷ ব্যবহারকারীর ডেটাতে চলমান অ্যাক্সেসের জন্য, সময়-ভিত্তিক অ্যাক্সেস ব্যবহার করুন দেখুন। আপনার অনুরোধে কীভাবে সময় ফিল্টার প্রয়োগ করবেন তা শিখতে, সময় ফিল্টার প্রয়োগ করুন দেখুন।
আপনি কি শিখুন
এই কুইকস্টার্টে আপনি শিখবেন কিভাবে:
- একটি বৈধ OAuth টোকেন প্রদান করে
InitiatePortabilityArchiveএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান। প্রতিক্রিয়াটিতে একটি বৈধjob_idথাকা উচিত। -
GetPortabilityArchiveStateএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান। প্রতিক্রিয়াটিতে একটি বৈধ কাজের অবস্থা এবং কাজটি সম্পূর্ণ হলে একটি স্বাক্ষরিত URL থাকতে হবে। - (ঐচ্ছিক) একই শংসাপত্র ব্যবহার করে দ্বিতীয়বার
InitiatePortabilityArchiveএন্ডপয়েন্টে একটি বৈধ OAuth টোকেন সহ একটি প্রমাণীকৃত অনুরোধ পাঠান। এটি একটিRESOURCE_EXHAUSTEDত্রুটি প্রদান করে এবং এটিResetAuthorizationএন্ডপয়েন্টের গুরুত্ব তুলে ধরার উদ্দেশ্যে। -
ResetAuthorizationএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান। এই অনুরোধটি সমস্ত ব্যবহারকারী-প্রদত্ত OAuth স্কোপ প্রত্যাহার করে। - (ঐচ্ছিক) আপনি পূর্বে ব্যবহার করেছিলেন একই OAuth টোকেন ব্যবহার করে
InitiatePortabilityArchiveএন্ডপয়েন্টে একটি অনুরোধ পাঠান। অনুমোদন পুনরায় সেট করার পরে অনুরোধটি ব্যর্থ হওয়া উচিত।
পূর্বশর্ত
এই কুইকস্টার্ট চালানোর জন্য, আপনাকে করতে হবে:
- যাচাই করুন যে ডেটা পোর্টেবিলিটি API আপনার অবস্থানের ব্যবহারকারীদের জন্য উপলব্ধ। সমর্থিত দেশ এবং অঞ্চলগুলির একটি তালিকার জন্য, "একটি তৃতীয় পক্ষের সাথে আপনার ডেটার একটি অনুলিপি ভাগ করুন" পৃষ্ঠায় সাধারণ প্রশ্নগুলি দেখুন৷
- ডেটা পোর্টেবিলিটি API-এর জন্য সেটআপ পদক্ষেপগুলি সম্পূর্ণ করুন৷
- JavaScript ওয়েব অ্যাপের জন্য OAuth কনফিগার করার ধাপগুলি অনুসরণ করুন। উৎপাদনে, আপনি সাধারণত ওয়েব সার্ভার অ্যাপ্লিকেশনের জন্য OAuth প্রবাহের মতো একটি ভিন্ন প্রবাহ ব্যবহার করবেন। সরলতার জন্য, এই কুইকস্টার্ট জাভাস্ক্রিপ্ট ওয়েব অ্যাপ ফ্লো ব্যবহার করে।
- আপনি যখন আপনার অনুমোদনের শংসাপত্র তৈরি করেন, তখন আপনার OAuth 2.0 ক্লায়েন্ট আইডি এবং আপনার অনুমোদিত রিডাইরেক্ট URI (উদাহরণস্বরূপ, https://google.com) একটি নোট করুন। কুইকস্টার্টে পরে আপনার সেগুলি দরকার৷
- আপনি যখন ডেটা পোর্টেবিলিটি API-এর জন্য স্কোপগুলি কনফিগার করেন , তখন মনে রাখবেন যে এই কুইকস্টার্টটি
myactivity.searchরিসোর্স গ্রুপ ব্যবহার করে: https://www.googleapis.com/auth/dataportability.myactivity.search। - আপনি যখন অ্যাক্সেসের অনুমতি দিতে চান এমন সময় বেছে নিলে, এই কুইকস্টার্টটি এক-কালীন অ্যাক্সেস ব্যবহার করে।
- একটি 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।
লক্ষ্য করুন যে এই কুইকস্টার্টের জন্য ইউআরএলে যে স্কোপ ব্যবহার করা হয়েছে সেটি হল সার্চ অ্যাক্টিভিটি স্কোপ। আপনি YouTube কার্যকলাপ স্কোপ বা উভয় স্কোপ ব্যবহার করতে পারেন।
-
আপনার ব্রাউজারের ঠিকানা বারে URLটি আটকান এবং OAuth প্রবাহের ধাপগুলি অনুসরণ করুন৷ এই প্রবাহের জন্য আপনাকে আপনার প্রতিষ্ঠানের মালিকানাধীন বা নিয়ন্ত্রিত অ্যাকাউন্টে সাইন ইন করতে হবে যা আপনি এই দ্রুত শুরুর জন্য ব্যবহার করছেন।
এটি সেই অ্যাকাউন্ট যা OAuth স্কোপের সাথে সম্মতি দিচ্ছে। সম্মতি স্ক্রিনটি এইরকম হওয়া উচিত (আপনার স্ক্রিনের পাঠ্য এই চিত্রের পাঠ্য থেকে আলাদা হতে পারে):

অ্যাক্সেস মঞ্জুর করার সুযোগ এবং অ্যাকাউন্টের ডেটাতে অ্যাক্সেস ভাগ করার সময় দৈর্ঘ্য (একবার, 30 দিন বা 180 দিন) চয়ন করুন। এই কুইকস্টার্টের জন্য, শুধুমাত্র একবার বেছে নিন।
সম্মতি দেওয়ার পরে এবং অ্যাক্সেসের সময়কাল বেছে নেওয়ার পরে, আপনাকে রিডাইরেক্ট 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 কী প্রয়োজন।
ডেটা পোর্টেবিলিটি API কল করতে:
প্রথমে, আপনি
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অনুরোধ একটিjob_idএবংaccessTypeপ্রদান করে। কাজের আইডি ডেটা সংরক্ষণাগারের অবস্থা পুনরুদ্ধার করতে ব্যবহার করা হয় এবং অ্যাক্সেসের ধরন নির্ধারণ করে যে আপনাকে ডেটাতে এক-বার বা সময়-ভিত্তিক অ্যাক্সেস দেওয়া হয়েছে কিনা। এই কুইকস্টার্টের উদ্দেশ্যে, আপনার এককালীন অ্যাক্সেস থাকা উচিত।{ 'archiveJobId': '<your_job_id>' 'accessType': 'ACCESS_TYPE_ONE_TIME' }আপনি একটি বৈধ 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/portabilityArchiveState
আদেশে:
-
your_OAuth_tokenহল আপনার OAuth টোকেন। -
your_job_idহল চাকরির আইডি যাInitiatePortabilityArchiveঅনুরোধ দ্বারা ফেরত দেওয়া হয়।
প্রতিক্রিয়া কাজের অবস্থার উপর ভিত্তি করে। কাজ সম্পূর্ণ না হলে, প্রতিক্রিয়া বর্তমান অবস্থা প্রদান করে। কাজ সম্পূর্ণ না হওয়া পর্যন্ত আপনাকে পর্যায়ক্রমে এই এন্ডপয়েন্টে অনুরোধ পাঠাতে হবে।
{ "state": "IN_PROGRESS" }কাজটি সম্পূর্ণ হলে, প্রতিক্রিয়াতে রাজ্য এবং এক বা একাধিক স্বাক্ষরিত URL থাকে যা ডেটা সংরক্ষণাগার ডাউনলোড করতে ব্যবহৃত হয়।
{ "state": "COMPLETE", "urls": [ "<signed_url>" ] }ডেটা সংরক্ষণাগারটি ডাউনলোড করতে আপনার ব্রাউজারে স্বাক্ষরিত URLটি আটকান৷ আপনার সংরক্ষণাগারের বিষয়বস্তু পরীক্ষা করা উচিত যাতে এটি প্রত্যাশিত অনুসন্ধান কার্যকলাপ ডেটা ধারণ করে।
-
(ঐচ্ছিক)
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 টোকেন।
প্রতিক্রিয়াটি নির্দেশ করবে যে এই ব্যবহারকারীর জন্য
myactivity.searchরিসোর্সের জন্য এককালীন সম্মতি শেষ হয়ে গেছে।... "error": { "code": 429, "message": "Requested resources have already been exported. Please call ResetAuthorization and re-obtain consent before trying again.", "status": "RESOURCE_EXHAUSTED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "RESOURCE_EXHAUSTED_ONE_TIME", "domain": "dataportability.googleapis.com" "metadata": { "previous_job_ids": "{previous_job_ids}" "access_type": "ACCESS_TYPE_ONE_TIME" ...-
ResetAuthorizationএন্ডপয়েন্টে একটি প্রমাণীকৃত অনুরোধ পাঠান। এই অনুরোধটি সমস্ত ব্যবহারকারী-প্রদত্ত OAuth স্কোপ প্রত্যাহার করে এবং আপনি ইতিমধ্যেই ব্যবহার করেছেন এমন একটি সংস্থান গোষ্ঠীর জন্যInitiatePortabilityArchiveকল করতে দেয়৷curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/authorization:reset
আদেশে:
-
your_OAuth_tokenহল আপনার OAuth টোকেন।
এই কমান্ডটি একটি খালি প্রতিক্রিয়া প্রদান করে।
-
(ঐচ্ছিক) অনুমোদন পুনরায় সেট করার পরে,
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 টোকেন।
আপনার দেওয়া OAuth টোকেন প্রত্যাহার করা হয়েছে বলে প্রতিক্রিয়াটি একটি ত্রুটি ফিরিয়ে দেবে৷
... "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" }-