ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะได้รับโทเค็น OAuth สําหรับบัญชี และส่งคําขอตามรอบไปยังปลายทาง Data Portability API
บทแนะนำเริ่มต้นนี้ครอบคลุมวิธีใช้ Data Portability API เพื่อเข้าถึงข้อมูลผู้ใช้ตามเวลา สําหรับสิทธิ์เข้าถึงข้อมูลผู้ใช้แบบครั้งเดียว โปรดดูหัวข้อเริ่มใช้ Data Portability API ดูวิธีใช้ตัวกรองเวลากับคำขอได้ที่ใช้ตัวกรองเวลา
สิ่งที่คุณเรียนรู้
ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะได้เรียนรู้วิธีต่อไปนี้
- ส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
InitiatePortabilityArchiveโดยระบุโทเค็น OAuth ที่ถูกต้อง การตอบกลับควรมีjob_idที่ถูกต้อง - ส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
GetPortabilityArchiveStateการตอบกลับควรมีสถานะงานที่ถูกต้อง และ URL ที่เซ็นชื่อเมื่องานเสร็จสมบูรณ์ - ส่งคำขอที่ตรวจสอบสิทธิ์แล้วซึ่งมีโทเค็น OAuth ที่ถูกต้องไปยังปลายทาง
InitiatePortabilityArchiveอีกครั้งโดยใช้ข้อมูลเข้าสู่ระบบเดียวกัน ซึ่งจะแสดงข้อผิดพลาดFAILED_PRECONDITIONเมื่อส่งคำขอภายใน 24 ชั่วโมงนับจากคำขอแรก
ข้อกำหนดเบื้องต้น
หากต้องการเรียกใช้การเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณต้องดำเนินการดังนี้
- ตรวจสอบว่า Data Portability API พร้อมให้บริการแก่ผู้ใช้ในพื้นที่ของคุณ ดูรายชื่อประเทศและภูมิภาคที่รองรับได้ที่คำถามที่พบบ่อยในหน้า "แชร์สำเนาข้อมูลกับบุคคลที่สาม"
- ทําตามขั้นตอนการตั้งค่าสําหรับ Data Portability API ให้เสร็จสมบูรณ์
- ทำตามขั้นตอนเพื่อกำหนดค่า OAuth สำหรับเว็บแอปฝั่งเซิร์ฟเวอร์
- เมื่อสร้างข้อมูลเข้าสู่ระบบการให้สิทธิ์ ให้จดบันทึกรหัสไคลเอ็นต์ OAuth 2.0, รหัสลับไคลเอ็นต์ และ URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต (เช่น https://google.com) คุณต้องใช้ข้อมูลดังกล่าวในภายหลังในการเริ่มต้นใช้งาน
- เมื่อคุณกําหนดค่าขอบเขตสําหรับ Data Portability API โปรดทราบว่าการเริ่มต้นใช้งานอย่างรวดเร็วนี้ใช้
myactivity.searchกลุ่มทรัพยากร https://www.googleapis.com/auth/dataportability.myactivity.search - เมื่อเลือกระยะเวลาที่ต้องการอนุญาตให้เข้าถึง คุณควรเลือก 30 วัน เพื่อทดสอบการเข้าถึงตามเวลา
- รับโทเค็น OAuth
- รับสิทธิ์เข้าถึงบัญชีที่องค์กรของคุณเป็นเจ้าของหรือควบคุม ระบบจะส่งออกข้อมูลกิจกรรมการค้นหาของบัญชีนี้ในการเริ่มต้นใช้งานด่วนนี้
รับโทเค็น OAuth
ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะส่งคําขอการให้สิทธิ์เพื่อรับโทเค็น OAuth โดยใช้ URL กระบวนการนี้ใช้ขั้นตอนสําหรับเว็บแอปฝั่งเซิร์ฟเวอร์ ขั้นตอนนี้จะสร้างโทเค็นรีเฟรชที่คุณสามารถใช้สำหรับการส่งออกครั้งต่อๆ ไปได้
วิธีรับโทเค็น OAuth
เขียน URL ดังต่อไปนี้
https://accounts.google.com/o/oauth2/v2/auth? client_id=client_id& redirect_uri=redirect_uri& response_type=code& access_type=offline& 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 วัน) ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ ให้เลือก30 วัน
หลังจากให้ความยินยอมและตัดสินใจเกี่ยวกับระยะเวลาการเข้าถึงแล้ว ระบบควรส่งต่อคุณไปยัง URI เปลี่ยนเส้นทาง https://google.com โดย URL ที่สร้างขึ้นในแถบที่อยู่จะมีรหัสการให้สิทธิ์ที่คุณนำไปแลกเป็นโทเค็น OAuth ในขั้นตอนถัดไป
ตัวอย่างเช่น หากบัญชีผู้ใช้ให้สิทธิ์เข้าถึง OAuth แก่ขอบเขต
dataportability.myactivity.searchURL ที่สร้างขึ้นจะมีลักษณะดังนี้https://google.com/#state=developer-specified-value&code=your_auth_code&scope=https://www.googleapis.com/auth/dataportability.myactivity.search
หากต้องการเปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็นการเข้าถึง ให้เรียกใช้ปลายทางโทเค็น OAuth ด้วยข้อมูลต่อไปนี้
curl https://oauth2.googleapis.com/token\ -H 'Content-Type: application/x-www-form-urlencoded' -X POST\ -d 'code=your_auth_code&\ redirect_uri=redirect_uri\ client_id=client_id&\ client_secret=client_secret&\ grant_type=authorization_code'
การตอบกลับควรมีลักษณะดังนี้
{ "access_token": your_OAuth_token, "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search", "refresh_token": your_refresh_token, "refresh_token_expires_in": 2591999 }
ใน URL your_OAuth_token คือสตริงที่แสดงถึงโทเค็น
ช่อง
refresh_token_expires_inจะแสดงเป็นวินาทีและจะระบุว่าผู้ใช้เลือกการเข้าถึง 30 วัน (2592000 วินาที) หรือ 180 วัน (15552000 วินาที) หากแอปมีสถานะการเผยแพร่เป็นการทดสอบ คุณจะมีสิทธิ์เข้าถึงเป็นเวลา 7 วัน (604800 วินาที) แทน โดยไม่คำนึงถึงการเลือกของผู้ใช้หากต้องการตรวจสอบโทเค็น 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_TIME_BASED" }หากระบุโทเค็น 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 ที่ลงนามแล้วลงในเบราว์เซอร์เพื่อดาวน์โหลดไฟล์เก็บถาวรของข้อมูล คุณควรตรวจสอบเนื้อหาของไฟล์เก็บถาวรเพื่อให้แน่ใจว่ามีข้อมูลกิจกรรมการค้นหาที่คาดไว้
หากได้รับสถานะ
FAILEDในการตอบกลับ คุณสามารถลองส่งออกอีกครั้งโดยใช้วิธีการRetryPortabilityArchiveพิมพ์คำสั่งก่อนหน้าซ้ำเพื่อส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
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. You can initiate another export after #{timestamp_after_24hrs}.", "status": "RESOURCE_EXHAUSTED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "RESOURCE_EXHAUSTED_TIME_BASED", "domain": "dataportability.googleapis.com" "metadata": { "previous_job_ids": "#{previous_job_ids}" "access_type": "ACCESS_TYPE_TIME_BASED" "timestamp_after_24hrs": "#{timestamp_after_24hrs}" ...หลังจากผ่านไป 24 ชั่วโมง คุณจะขอการส่งออกใหม่ได้ แต่ก่อนอื่นคุณต้องแลกโทเค็นการรีเฟรชเป็นโทเค็นการเข้าถึงใหม่
curl https://oauth2.googleapis.com/token\ -H 'Content-Type: application/x-www-form-urlencoded' -X POST\ -d 'refresh_token=your_refresh_token&\ client_id=client_id&\ client_secret=client_secret&\ grant_type=refresh_token'
การตอบกลับควรมีลักษณะดังนี้
{ "access_token": your_OAuth_token, "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search", "refresh_token_expires_in": 2505599 }
หากผู้ใช้ต่ออายุสิทธิ์เข้าถึง เวลาหมดอายุใหม่จะแสดงในช่อง
refresh_token_expires_inคุณสามารถใช้โทเค็นการเข้าถึงใหม่เพื่อทําตามขั้นตอน
InitiatePortabilityArchiveและGetPortabilityArchiveStateซ้ำได้