เริ่มใช้ Data Portability API

ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะได้รับโทเค็น OAuth สำหรับบัญชีและส่งคำขอไปยังปลายทาง Data Portability API

สิ่งที่คุณเรียนรู้

ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะได้เรียนรู้วิธีต่อไปนี้

  • ส่งคำขอที่ผ่านการตรวจสอบสิทธิ์ไปยังปลายทาง InitiatePortabilityArchive โดยระบุโทเค็น OAuth ที่ถูกต้อง การตอบกลับควรมี job_id ที่ถูกต้อง
  • ส่งคำขอที่ผ่านการตรวจสอบสิทธิ์แล้วไปยังปลายทาง GetPortabilityArchiveState การตอบกลับควรมีสถานะงานที่ถูกต้อง และ URL ที่ลงนามเมื่องานเสร็จสมบูรณ์แล้ว
  • (ไม่บังคับ) ส่งคำขอที่ตรวจสอบสิทธิ์แล้วพร้อมโทเค็น OAuth ที่ถูกต้องไปยังปลายทาง InitiatePortabilityArchive เป็นครั้งที่ 2 โดยใช้ข้อมูลเข้าสู่ระบบเดียวกัน การดำเนินการนี้จะแสดงข้อผิดพลาด RESOURCE_EXHAUSTED และมีจุดประสงค์เพื่อไฮไลต์ความสำคัญของปลายทาง ResetAuthorization
  • ส่งคำขอที่ผ่านการตรวจสอบสิทธิ์แล้วไปยังปลายทาง ResetAuthorization คําขอนี้จะเพิกถอนขอบเขต OAuth ทั้งหมดที่ได้จากผู้ใช้
  • (ไม่บังคับ) ส่งคำขอไปยังปลายทาง InitiatePortabilityArchive โดยใช้โทเค็น OAuth เดียวกับที่คุณใช้ก่อนหน้านี้ คำขอควรล้มเหลว หลังจากรีเซ็ตการให้สิทธิ์

ข้อกำหนดเบื้องต้น

หากต้องการเรียกใช้การเริ่มต้นอย่างรวดเร็วนี้ คุณจะต้องมีคุณสมบัติต่อไปนี้

  • ตรวจสอบว่า Data Portability API พร้อมใช้งานสำหรับผู้ใช้ในพื้นที่ของคุณ โปรดดูรายชื่อประเทศและภูมิภาคที่รองรับที่หัวข้อคำถามที่พบบ่อยในหน้า "แชร์สำเนาข้อมูลของคุณกับบุคคลที่สาม"
  • ทำตามขั้นตอนการตั้งค่าสำหรับ Data Portability API ให้เสร็จสมบูรณ์
  • ทำตามขั้นตอนเพื่อกำหนดค่า OAuth สำหรับเว็บแอป JavaScript ในเวอร์ชันที่ใช้งานจริงโดยปกติแล้ว คุณจะใช้ขั้นตอนอื่น เช่น ขั้นตอน OAuth สำหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์ การเริ่มต้นอย่างรวดเร็วนี้ใช้ขั้นตอนของเว็บแอป JavaScript เพื่อความสะดวก
  • รับโทเค็น OAuth
  • รับสิทธิ์เข้าถึงบัญชีที่องค์กรของคุณเป็นเจ้าของหรือควบคุม ระบบจะส่งออกข้อมูลกิจกรรมการค้นหาของบัญชีนี้ในการเริ่มต้นอย่างรวดเร็วนี้

รับโทเค็น OAuth

สำหรับการเริ่มต้นอย่างรวดเร็วนี้ คุณจะต้องส่งคำขอการให้สิทธิ์เพื่อรับโทเค็น OAuth โดยใช้ URL กระบวนการนี้ใช้ขั้นตอนสำหรับเว็บแอป 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&
    include_granted_scopes=true&
    state=developer-specified-value
    

    ใน URL:

    • client_id คือรหัสไคลเอ็นต์ OAuth ของคุณ
    • redirect_uri คือ URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต เช่น https://google.com

    โปรดสังเกตว่าขอบเขตที่ใช้ใน URL สำหรับการเริ่มต้นอย่างรวดเร็วนี้คือขอบเขตกิจกรรมการค้นหา คุณยังใช้ขอบเขตกิจกรรมใน YouTube หรือทั้ง 2 ขอบเขตได้ด้วย

  2. วาง URL ลงในแถบที่อยู่ของเบราว์เซอร์ แล้วทำตามขั้นตอน OAuth ในขั้นตอนนี้ คุณต้องลงชื่อเข้าใช้บัญชีที่องค์กรของคุณเป็นเจ้าของหรือควบคุมอยู่ ซึ่งใช้สำหรับการเริ่มต้นใช้งานอย่างรวดเร็วนี้

    นี่คือบัญชีที่ยินยอมให้ใช้ขอบเขต OAuth หน้าจอคำยินยอมควรมีลักษณะดังนี้ (ข้อความในหน้าจออาจแตกต่างจากข้อความในรูปภาพนี้)

    หน้าจอขอความยินยอมที่ผู้ใช้ตกลงจะให้สิทธิ์เข้าถึงข้อมูลกิจกรรมการค้นหา

  3. หลังจากให้ความยินยอมแล้ว คุณควรส่งต่อไปยัง URI การเปลี่ยนเส้นทางซึ่งก็คือ https://google.com โดย URL ที่สร้างขึ้นในแถบที่อยู่จะมีโทเค็นเพื่อการเข้าถึง OAuth ด้วย

    เช่น หากบัญชีผู้ใช้ให้สิทธิ์เข้าถึง OAuth ในขอบเขต dataportability.myactivity.search แล้ว URL ที่สร้างขึ้นจะมีลักษณะดังนี้

    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 ซึ่งคุณจะต้องใช้ข้อมูลเหล่านี้เพื่อเรียกใช้ Data Portability API

ส่งคำขอไปยังปลายทาง

ในการเริ่มต้นอย่างรวดเร็วนี้ คุณจะใช้คําสั่ง curl เพื่อเรียกใช้ปลายทาง Data Portability API คำสั่งเหล่านี้ต้องใช้โทเค็น OAuth และคีย์ API ที่รวบรวมไว้ก่อนหน้านี้

วิธีเรียกใช้ 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"
    }
    

    หากงานเสร็จสมบูรณ์แล้ว การตอบกลับจะมีสถานะและ URL ที่ลงนามอย่างน้อย 1 รายการซึ่งใช้ในการดาวน์โหลดที่เก็บข้อมูล

    {
      "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 เดียวกับที่คุณใช้ก่อนหน้านี้

    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"
      }