Data Portability API का इस्तेमाल शुरू करना

इस क्विकस्टार्ट में, आपको अपने खाते के लिए OAuth टोकन मिलता है और डेटा पोर्टेबिलिटी एपीआई एंडपॉइंट पर अनुरोध भेजे जाते हैं.

आपको क्या सीखने को मिलता है

इस क्विकस्टार्ट में, ये चीज़ें सीखी जाएंगी:

  • मान्य OAuth टोकन देकर, InitiatePortabilityArchive एंडपॉइंट पर पुष्टि किया गया अनुरोध भेजें. रिस्पॉन्स में मान्य job_id होना चाहिए.
  • GetPortabilityArchiveState एंडपॉइंट पर पुष्टि किया गया अनुरोध भेजें. जवाब में एक मान्य जॉब स्थिति होनी चाहिए और काम पूरा होने पर, एक हस्ताक्षर किया हुआ यूआरएल होना चाहिए.
  • (ज़रूरी नहीं) एक ही क्रेडेंशियल का इस्तेमाल करके, InitiatePortabilityArchive एंडपॉइंट पर मान्य OAuth टोकन के साथ दूसरी बार पुष्टि किया गया अनुरोध भेजें. इससे RESOURCE_EXHAUSTED गड़बड़ी मिलती है और इसका मकसद ResetAuthorization एंडपॉइंट की अहमियत को हाइलाइट करना है.
  • ResetAuthorization एंडपॉइंट पर पुष्टि किया गया अनुरोध भेजें. यह अनुरोध, उन सभी OAuth दायरों को निरस्त कर देता है जिन्हें उपयोगकर्ताओं ने अनुमति दी थी.
  • (ज़रूरी नहीं) InitiatePortabilityArchive एंडपॉइंट को अनुरोध भेजने के लिए, उसी OAuth टोकन का इस्तेमाल करें जिसका इस्तेमाल आपने पहले किया था. अनुमति रीसेट करने के बाद अनुरोध पूरा नहीं हो पाएगा.

ज़रूरी शर्तें

इस क्विकस्टार्ट को चलाने के लिए, आपको यह करना होगा:

  • पुष्टि करें कि डेटा पोर्टेबिलिटी एपीआई आपके देश या इलाके में रहने वाले लोगों के लिए उपलब्ध है. जिन देशों और इलाकों में यह सुविधा उपलब्ध है उनकी सूची देखने के लिए, "तीसरे पक्ष के साथ अपने डेटा की कॉपी शेयर करें" पेज पर, आम तौर पर पूछे जाने वाले सवाल देखें.
  • डेटा पोर्टेबिलिटी एपीआई के लिए, सेटअप के चरण पूरे करें.
  • JavaScript वेब ऐप्लिकेशन के लिए OAuth को कॉन्फ़िगर करने का तरीका अपनाएं. प्रोडक्शन में, आम तौर पर वेब सर्वर ऐप्लिकेशन के लिए, OAuth फ़्लो जैसे अलग फ़्लो का इस्तेमाल किया जाता है. आसानी के लिए, यह क्विकस्टार्ट JavaScript वेब ऐप्लिकेशन फ़्लो का इस्तेमाल करता है.
    • अपने ऑथराइज़ेशन क्रेडेंशियल बनाते समय, अपना OAuth 2.0 क्लाइंट आईडी और अपनी अनुमति वाला रीडायरेक्ट यूआरआई नोट कर लें (उदाहरण के लिए, https://google.com). आपको बाद में क्विकस्टार्ट में उनकी ज़रूरत होगी.
    • डेटा पोर्टेबिलिटी एपीआई के स्कोप कॉन्फ़िगर करते समय, ध्यान रखें कि यह क्विकस्टार्ट myactivity.search रिसॉर्स ग्रुप का इस्तेमाल करता है: https://www.googleapis.com/auth/dataportability.myactivity.search.
  • OAuth टोकन पाना.
  • आपके संगठन के मालिकाना हक वाले या उसके नियंत्रण वाले खाते का ऐक्सेस पाना. खाते की खोज गतिविधि का डेटा, इस क्विकस्टार्ट में एक्सपोर्ट किया जाता है.

OAuth टोकन पाना

इस क्विकस्टार्ट के लिए, आपको यूआरएल का इस्तेमाल करके OAuth टोकन पाने के लिए, अनुमति देने का अनुरोध भेजना होता है. यह प्रोसेस, JavaScript वेब ऐप्लिकेशन के फ़्लो का इस्तेमाल करती है. यह फ़्लो रीफ़्रेश टोकन नहीं दिखाता है.

किसी प्रोडक्शन ऐप्लिकेशन के लिए, आम तौर पर रीफ़्रेश टोकन पाने के लिए OAuth फ़्लो का इस्तेमाल किया जाता है. इसका इस्तेमाल, मांग पर ऐक्सेस टोकन जनरेट करने के लिए किया जा सकता है. इसका एक उदाहरण सर्वर-साइड वेब ऐप्लिकेशन का फ़्लो होगा.

OAuth टोकन पाने के लिए:

  1. ऐसा यूआरएल लिखें.

    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&
    include_granted_scopes=true&
    state=developer-specified-value
    

    यूआरएल में:

    • client_id आपका OAuth क्लाइंट आईडी है.
    • redirect_uri आपका आधिकारिक रीडायरेक्ट यूआरआई है; उदाहरण के लिए, https://google.com.

    ध्यान दें कि इस क्विकस्टार्ट के लिए यूआरएल में इस्तेमाल किया गया स्कोप, खोज गतिविधि का स्कोप होता है. आप YouTube पर की गई गतिविधि के दायरे या दोनों दायरों का भी इस्तेमाल कर सकते हैं.

  2. यूआरएल को अपने ब्राउज़र के पता बार में चिपकाएं और OAuth फ़्लो में बताया गया तरीका अपनाएं. इस फ़्लो के लिए आपको अपने संगठन के मालिकाना हक वाले या कंट्रोल किए गए उस खाते में साइन इन करना होगा जिसका इस्तेमाल इस क्विकस्टार्ट के लिए किया जा रहा है.

    यह वह खाता है जिसने OAuth के दायरे को सहमति दी है. सहमति वाली स्क्रीन इस तरह से दिखनी चाहिए (आपकी स्क्रीन पर दिख रहा टेक्स्ट, इस इमेज में मौजूद टेक्स्ट से अलग हो सकता है):

    ऐसी स्क्रीन जहां उपयोगकर्ता, खोज गतिविधि का डेटा ऐक्सेस करने की अनुमति देता है

  3. सहमति देने के बाद, आपको रीडायरेक्ट यूआरआई— https://google.com पर भेजा जाना चाहिए. पता बार में जनरेट किए गए यूआरएल में 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
    

    यूआरएल में, <your_OAuth_token> एक ऐसी स्ट्रिंग है जो टोकन की जानकारी देती है.

  4. OAuth टोकन की पुष्टि करने के लिए, इस यूआरएल को अपने ब्राउज़र में चिपकाएं:

    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 टोकन और एपीआई पासकोड इकट्ठा करें. Data Portability API पर कॉल करने के लिए, आपको इनकी ज़रूरत होगी.

एंडपॉइंट को अनुरोध भेजें

इस क्विकस्टार्ट में, Data Portability API के एंडपॉइंट को कॉल करने के लिए, कर्ल कमांड इस्तेमाल किए जाते हैं. इन कमांड के लिए, पहले इकट्ठा किए गए OAuth टोकन और एपीआई पासकोड की ज़रूरत होती है.

Data Portability API को कॉल करने के लिए:

  1. सबसे पहले, आपको InitiatePortabilityArchive एंडपॉइंट पर एक पुष्टि किया गया अनुरोध भेजना होगा. यह अनुरोध संग्रहित करने का काम शुरू करता है.

    नीचे दिए गए curl कमांड को चलाएं:

    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 टोकन है.

    ध्यान दें: resources पैरामीटर में सिर्फ़ वे OAuth स्कोप शामिल होने चाहिए जिन्हें ऐक्सेस दिया गया हो. इस उदाहरण में, सिर्फ़ myactivity.search दी गई थी. अतिरिक्त संसाधन ग्रुप शामिल करने पर, एक गड़बड़ी दिखती है.

    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 कमांड को चलाएं:

    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 के हिसाब से मिलता है. अगर काम पूरा नहीं होता है, तो जवाब से मौजूदा स्थिति का पता चलता है. आपको काम पूरा होने तक समय-समय पर इस एंडपॉइंट पर अनुरोध भेजने चाहिए.

    {
      "state": "IN_PROGRESS"
    }
    

    अगर काम पूरा हो जाता है, तो जवाब में राज्य और साइन किए गए एक या उससे ज़्यादा यूआरएल शामिल होते हैं जिनका इस्तेमाल डेटा संग्रह को डाउनलोड करने के लिए किया जाता है.

    {
      "state": "COMPLETE",
      "urls": [
        "<signed_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"
      }