ডেটা পোর্টেবিলিটি API ব্যবহার করা শুরু করুন

এই কুইকস্টার্টে, আপনি আপনার অ্যাকাউন্টের জন্য একটি OAuth টোকেন পাবেন এবং আপনি ডেটা পোর্টেবিলিটি 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 টোকেন পেতে:

  1. নিচের মত একটি 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 কার্যকলাপ স্কোপ বা উভয় স্কোপ ব্যবহার করতে পারেন।

  2. আপনার ব্রাউজারের ঠিকানা বারে URLটি আটকান এবং OAuth প্রবাহের ধাপগুলি অনুসরণ করুন৷ এই প্রবাহের জন্য আপনাকে আপনার প্রতিষ্ঠানের মালিকানাধীন বা নিয়ন্ত্রিত অ্যাকাউন্টে সাইন ইন করতে হবে যা আপনি এই দ্রুত শুরুর জন্য ব্যবহার করছেন।

    এটি সেই অ্যাকাউন্ট যা OAuth স্কোপের সাথে সম্মতি দিচ্ছে। সম্মতি স্ক্রীনটি এইরকম হওয়া উচিত (আপনার স্ক্রীনের পাঠ্যটি এই চিত্রের পাঠ্য থেকে আলাদা হতে পারে):

    সম্মতি স্ক্রিন যেখানে ব্যবহারকারী সার্চ অ্যাক্টিভিটি ডেটা অ্যাক্সেস করার অনুমতি দিতে সম্মত হন

  3. সম্মতি দেওয়ার পরে, আপনাকে রিডাইরেক্ট 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> হল একটি স্ট্রিং যা টোকেনকে উপস্থাপন করে।

  4. 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"
    }
    
  5. আপনার OAuth টোকেন এবং আপনার API কী সংগ্রহ করুন। ডেটা পোর্টেবিলিটি API-তে কল করার জন্য আপনার এগুলোর প্রয়োজন।

শেষ পয়েন্টে অনুরোধ পাঠান

এই কুইকস্টার্টে আপনি ডেটা পোর্টেবিলিটি API এন্ডপয়েন্ট কল করতে কার্ল কমান্ড ব্যবহার করেন। এই কমান্ডগুলির জন্য আপনার আগে সংগ্রহ করা OAuth টোকেন এবং API কী প্রয়োজন।

ডেটা পোর্টেবিলিটি API কল করতে:

  1. প্রথমে, আপনি 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 ফেরত দেয়। এই কাজের আইডি ডেটা আর্কাইভের অবস্থা পুনরুদ্ধার করতে ব্যবহার করা হয়।

    {
      "archiveJobId": "<your_job_id>"
    }
    

    আপনি একটি বৈধ 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.

  2. এর পরে, আপনি আর্কাইভ কাজের স্থিতি পুনরুদ্ধার করতে 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টি আটকান৷ আপনার সংরক্ষণাগারের বিষয়বস্তু পরীক্ষা করা উচিত যাতে এটি প্রত্যাশিত অনুসন্ধান কার্যকলাপ ডেটা ধারণ করে।

  3. (ঐচ্ছিক) 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": "Resource has been exhausted (check quota).",
      "status": "RESOURCE_EXHAUSTED"
    }
    
  4. 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 টোকেন।

    এই কমান্ডটি একটি খালি প্রতিক্রিয়া প্রদান করে।

  5. (ঐচ্ছিক) অনুমোদন পুনরায় সেট করার পরে, 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"
      }