ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะได้รับโทเค็น OAuth สําหรับบัญชี และส่งคําขอแบบครั้งเดียวไปยังปลายทาง Data Portability API
บทแนะนำฉบับย่อนี้จะอธิบายวิธีใช้ Data Portability API เพื่อเข้าถึงข้อมูลผู้ใช้แบบครั้งเดียว หากต้องการเข้าถึงข้อมูลผู้ใช้อย่างต่อเนื่อง โปรดดูหัวข้อใช้การเข้าถึงตามเวลา หากต้องการดูวิธีใช้ตัวกรองเวลากับคำขอ โปรดดูหัวข้อใช้ตัวกรองเวลา
สิ่งที่คุณเรียนรู้
ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะได้เรียนรู้วิธีต่อไปนี้
- ส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
InitiatePortabilityArchiveโดยระบุโทเค็น OAuth ที่ถูกต้อง การตอบกลับควรมีjob_idที่ถูกต้อง - ส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
GetPortabilityArchiveStateการตอบกลับควรมีสถานะงานที่ถูกต้อง และ URL ที่เซ็นชื่อเมื่องานเสร็จสมบูรณ์ - (ไม่บังคับ) ส่งคําขอที่ตรวจสอบสิทธิ์แล้วซึ่งมีโทเค็น OAuth ที่ถูกต้องไปยังปลายทาง
InitiatePortabilityArchiveอีกครั้งโดยใช้ข้อมูลเข้าสู่ระบบเดียวกัน ซึ่งจะแสดงข้อผิดพลาดRESOURCE_EXHAUSTEDและมีไว้เพื่อเน้นความสำคัญของปลายทางResetAuthorization - ส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
ResetAuthorizationคำขอนี้จะเพิกถอนขอบเขต OAuth ทั้งหมดที่ผู้ใช้ให้สิทธิ์ - (ไม่บังคับ) ส่งคําขอไปยังปลายทาง
InitiatePortabilityArchiveโดยใช้โทเค็น OAuth เดียวกันกับที่ใช้ก่อนหน้านี้ คำขอควรดำเนินการไม่สำเร็จหลังจากรีเซ็ตการให้สิทธิ์
ข้อกำหนดเบื้องต้น
หากต้องการเรียกใช้การเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณต้องดำเนินการดังนี้
- ตรวจสอบว่า Data Portability API พร้อมให้บริการแก่ผู้ใช้ในพื้นที่ของคุณ ดูรายชื่อประเทศและภูมิภาคที่รองรับได้ที่คำถามที่พบบ่อยในหน้า "แชร์สำเนาข้อมูลกับบุคคลที่สาม"
- ทําตามขั้นตอนการตั้งค่าสําหรับ Data Portability API ให้เสร็จสมบูรณ์
- ทำตามขั้นตอนเพื่อกำหนดค่า OAuth สำหรับเว็บแอป JavaScript ในเวอร์ชันที่ใช้งานจริง คุณมักจะใช้ขั้นตอนอื่น เช่น ขั้นตอน OAuth สำหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์
คู่มือเริ่มต้นฉบับย่อนี้ใช้ขั้นตอนของเว็บแอป JavaScript เพื่อให้เข้าใจง่าย
- เมื่อสร้างข้อมูลเข้าสู่ระบบการให้สิทธิ์ ให้จดรหัสไคลเอ็นต์ OAuth 2.0 และ URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต (เช่น https://google.com) คุณต้องใช้รหัสดังกล่าวในภายหลังในคู่มือเริ่มต้นใช้งาน
- เมื่อคุณกําหนดค่าขอบเขตสําหรับ Data Portability API โปรดทราบว่าการเริ่มต้นใช้งานอย่างรวดเร็วนี้ใช้
myactivity.searchกลุ่มทรัพยากร https://www.googleapis.com/auth/dataportability.myactivity.search - เมื่อคุณเลือกระยะเวลาที่ต้องการอนุญาตให้เข้าถึง ฟีเจอร์เริ่มต้นใช้งานด่วนนี้จะใช้สิทธิ์เข้าถึงแบบครั้งเดียว
- รับโทเค็น OAuth
- รับสิทธิ์เข้าถึงบัญชีที่องค์กรของคุณเป็นเจ้าของหรือควบคุม ระบบจะส่งออกข้อมูลกิจกรรมการค้นหาของบัญชีนี้ในการเริ่มต้นใช้งานด่วนนี้
รับโทเค็น OAuth
ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะส่งคําขอการให้สิทธิ์เพื่อรับโทเค็น OAuth โดยใช้ URL กระบวนการนี้ใช้ขั้นตอนสำหรับเว็บแอป 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 สําหรับการเริ่มต้นใช้งานฉบับย่อนี้คือขอบเขตกิจกรรมการค้นหา นอกจากนี้ คุณยังใช้ขอบเขตกิจกรรม YouTube หรือทั้ง 2 ขอบเขตก็ได้
วาง URL ในแถบที่อยู่ของเบราว์เซอร์ แล้วทำตามขั้นตอนในโฟลว์ OAuth ขั้นตอนนี้กำหนดให้คุณลงชื่อเข้าใช้บัญชีที่องค์กรเป็นเจ้าของหรือควบคุมอยู่ซึ่งคุณใช้สำหรับการเริ่มต้นใช้งานอย่างรวดเร็วนี้
บัญชีนี้เป็นบัญชีที่ให้ความยินยอมในขอบเขต OAuth หน้าจอขอความยินยอมควรมีลักษณะดังนี้ (ข้อความในหน้าจออาจแตกต่างจากข้อความในรูปภาพนี้)
เลือกขอบเขตที่จะให้สิทธิ์เข้าถึงและระยะเวลาในการแชร์สิทธิ์เข้าถึงข้อมูลของบัญชี (1 ครั้ง, 30 วัน หรือ 180 วัน) สำหรับการเริ่มต้นใช้งานอย่างรวดเร็วนี้ ให้เลือกเพียงครั้งเดียว
หลังจากให้ความยินยอมและเลือกระยะเวลาการเข้าถึงแล้ว ระบบจะส่งต่อคุณไปยัง URI การเปลี่ยนเส้นทาง ซึ่งก็คือ https://google.com URL ที่สร้างขึ้นในแถบที่อยู่จะมีโทเค็นการเข้าถึง OAuth
ตัวอย่างเช่น หากบัญชีผู้ใช้ให้สิทธิ์เข้าถึง OAuth แก่ขอบเขต
dataportability.myactivity.searchURL ที่สร้างขึ้นจะมีลักษณะดังนี้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 คุณต้องใช้ข้อมูลเหล่านี้เพื่อเรียกใช้ Data Portability API
ส่งคําขอไปยังปลายทาง
ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะใช้คําสั่ง curl เพื่อเรียกใช้อุปกรณ์ปลายทาง Data Portability API คำสั่งเหล่านี้ต้องใช้โทเค็น OAuth และคีย์ API ที่คุณรวบรวมไว้ก่อนหน้านี้
วิธีเรียกใช้ Data Portability API
ขั้นแรก คุณต้องส่งคําขอที่ตรวจสอบสิทธิ์ไปยังปลายทาง
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 ของคุณ
คำขอ
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 ต่อไปนี้
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 ที่มีการเซ็นชื่ออย่างน้อย 1 รายการที่ใช้ดาวน์โหลดที่เก็บถาวรของข้อมูล
{ "state": "COMPLETE", "urls": [ "<signed_url>" ] }วาง URL ที่ลงชื่อแล้วลงในเบราว์เซอร์เพื่อดาวน์โหลดไฟล์เก็บถาวรของข้อมูล คุณควรตรวจสอบเนื้อหาของไฟล์เก็บถาวรเพื่อให้แน่ใจว่ามีข้อมูลกิจกรรมการค้นหาที่คาดไว้
(ไม่บังคับ) ทำซ้ำคำสั่งก่อนหน้าเพื่อส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
InitiatePortabilityArchivecurl -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 เดียวกับที่ใช้ก่อนหน้านี้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" }