Data Portability API ประกอบด้วยเมธอดต่อไปนี้
portabilityArchive.initiate
archiveJobs.getPortabilityArchiveState
resetAuthorization
archiveJobs.retryPortabilityArchive
archiveJobs.cancelPortabilityArchive
accessType.check
portabilityArchive.initiate
คุณเรียกใช้เมธอด portabilityArchive.initiate
เพื่อเริ่มงานส่งออกข้อมูลใหม่
เมื่อเริ่มงานส่งออกเพื่อสร้างที่เก็บข้อมูล คุณต้องขอกลุ่มทรัพยากรที่เหมาะสมและระบุโทเค็น OAuth ที่มีขอบเขตที่จําเป็นสําหรับกลุ่มทรัพยากรนั้น ระบบจะใช้โทเค็น OAuth เพื่อให้สิทธิ์คำขอและเพื่อระบุข้อมูลผู้ใช้ที่จะส่งออก
ดูรายการกลุ่มทรัพยากรทั้งหมดที่บริการหนึ่งๆ รองรับได้ที่หน้าอ้างอิงสคีมาของบริการนั้น
ตัวอย่างเช่น หากคุณส่งออกข้อมูลกิจกรรมการค้นหา ให้เรียกใช้ InitiatePortabilityArchive(resources = ["myactivity.search"])
คำขอต้องมีโทเค็น OAuth ที่แนบอยู่กับขอบเขต OAuth ของ Search ดังนี้
https://www.googleapis.com/auth/dataportability.myactivity.search
แม้ว่าจะรวมกลุ่มทรัพยากรหลายกลุ่มในInitiatePortabilityArchive
การเรียกใช้ครั้งเดียวได้ แต่เราไม่แนะนําให้ทําเช่นนั้น คุณจะประมวลผลได้เร็วขึ้นโดยส่งInitiatePortabilityArchive
คําขอแยกต่างหากสําหรับกลุ่มทรัพยากรแต่ละกลุ่ม โปรดทราบว่าเมื่อคุณขอกลุ่มทรัพยากรหลายกลุ่ม โทเค็น OAuth ที่แนบมาต้องมีขอบเขตที่เหมาะสมทั้งหมด
ตัวอย่างเช่น แทนที่จะเรียกใช้ InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"])
เพื่อสร้างที่เก็บถาวรของข้อมูลสำหรับทั้งกิจกรรมการค้นหาและ YouTube ให้เรียกใช้ InitiatePortabilityArchive(resources = ["myactivity.search"])
และ InitiatePortabilityArchive(resources = ["myactivity.youtube"])
แยกกัน
คำขอ InitiatePortabilityArchive
แสดงผลเป็น job_id
ระบบจะใช้รหัสงานนี้เพื่อดึงสถานะของการเก็บถาวรของข้อมูล
archiveJobs.getPortabilityArchiveState
ระบบจะเรียกใช้เมธอด archiveJobs.getPortabilityArchiveState
เพื่อดึงสถานะปัจจุบันของงานส่งออกที่เก็บถาวรของข้อมูล เมื่อเรียกใช้ getPortabilityArchiveState
ให้ระบุjob_id
ดังนี้
GetPortabilityArchiveState(job_id)
นอกจากนี้ คุณยังต้องระบุโทเค็น OAuth ที่มีขอบเขตที่ตรงกับกลุ่มทรัพยากรที่ใช้ในคำขอ initiate
ด้วย
หากสถานะคือ COMPLETE
ระบบจะแสดง URL ของ Cloud Storage ที่ลงชื่อซึ่งคุณใช้ดาวน์โหลดข้อมูลได้ URL ที่ลงนามจะหมดอายุหลังผ่านไป 6 ชั่วโมง และข้อมูลจะใช้งานได้เป็นเวลา 14 วัน
คำขอเก็บถาวรอาจใช้เวลาหลายนาที หลายชั่วโมง หรือหลายวันจึงจะเสร็จสมบูรณ์ ทั้งนี้ขึ้นอยู่กับปริมาณข้อมูล คุณตรวจสอบสถานะของไฟล์เก็บถาวรได้ทุก 5-60 นาที
resetAuthorization
เมธอด resetAuthorization
ทําสิ่งต่อไปนี้
- เพิกถอนขอบเขต OAuth ทั้งหมดที่ผู้ใช้ให้สิทธิ์
- อนุญาตให้แอปพลิเคชันเรียกใช้
InitiatePortabilityArchive
สำหรับกลุ่มทรัพยากรที่คุณเคยใช้ - นำสิทธิ์เข้าถึงที่เก็บถาวรของข้อมูลก่อนหน้าออก
เมื่อเรียกใช้ resetAuthorization
คุณต้องระบุโทเค็น OAuth ที่แนบมาสำหรับผู้ใช้ที่คุณต้องการรีเซ็ตการให้สิทธิ์
archiveJobs.retryPortabilityArchive
ระบบจะเรียกใช้เมธอด archiveJobs.retryPortabilityArchive
เพื่อลองดำเนินการกับงานที่ดำเนินการไม่สำเร็จอีกครั้งในกรณีที่เมธอด archiveJobs.getPortabilityArchiveState
ได้แสดงสถานะ FAILED
แล้ว ซึ่งอาจเกิดขึ้นเนื่องจากความล้มเหลวชั่วคราวในแบ็กเอนด์ ในกรณีนี้ คุณสามารถลองส่งออกอีกครั้งได้โดยไม่ต้องขอโทเค็น OAuth ใหม่จากผู้ใช้ เมื่อเรียกใช้ retryPortabilityArchive
คุณต้องระบุ job_id
พร้อมกับโทเค็น OAuth ที่ถูกต้อง จากนั้นปลายทางจะพยายามสร้างการส่งออกสําหรับกลุ่มทรัพยากรเดียวกันที่ขอในคําขอ initiatePortabilityArchive
แรก หากสำเร็จ ปลายทางนี้จะแสดงjob_id
ใหม่ที่คุณใช้ในคําเรียก getPortabilityArchiveState
ได้ ระบบจะลองดำเนินการงานที่ดำเนินการไม่สำเร็จซ้ำได้สูงสุด 3 ครั้ง
เช่น
คุณโทรหา
InitiatePortabilityArchive(resources = ["myactivity.search"])
และได้รับjob_id: 0
หลังจากโทรหา
GetPortabilityArchiveState(0)
คุณจะได้รับJobSate: FAILED
จากนั้นโทรไปที่
RetryPortabilityArchive(0)
เพื่อรับjob_id: 1
สำหรับresources = ["myactivity.search"]
จากนั้นคุณจะโทรหา
GetPortabilityArchiveState(1)
ได้ต่อไป
archiveJobs.cancelPortabilityArchive
ระบบจะเรียกใช้เมธอด archiveJobs.cancelPortabilityArchive
เพื่อยกเลิกงานแต่ละรายการโดยไม่เพิกถอนโทเค็นที่มีอยู่เมื่อคุณมีสิทธิ์เข้าถึงข้อมูลผู้ใช้อย่างต่อเนื่อง ซึ่งจะมีประโยชน์เมื่อไม่จําเป็นต้องใช้งานหรือทรัพยากรอีกต่อไปและคุณต้องการรีเซ็ตโควต้างาน งานต้องเป็นแบบ IN_PROGRESS
และสร้างขึ้นด้วยการเข้าถึงตามเวลาจึงจะยกเลิกได้
ตัวอย่างเช่น คุณอาจยกเลิกงานที่กําลังดําเนินการตามเวลาสําหรับ myactivity.youtube
และ youtube.public_videos
แล้วเริ่มงานใหม่สําหรับ myactivity.youtube
เท่านั้น
accessType.check
เมธอด accessType.check
ช่วยให้คุณตรวจสอบได้ว่าโทเค็น OAuth ให้สิทธิ์เข้าถึงแบบตามเวลาหรือแบบครั้งเดียวก่อนที่จะเริ่มงานหรือไม่ เช่น คุณอาจต้องการส่งออกประวัติทั้งหมดของผู้ใช้หากผู้ใช้ให้สิทธิ์เข้าถึงแบบครั้งเดียว หรือส่งออกเฉพาะวันสุดท้ายหากผู้ใช้ให้สิทธิ์เข้าถึงตามเวลา
การตอบกลับประกอบด้วย 2 ช่อง ได้แก่ รายการรหัสกลุ่มทรัพยากรการย้ายข้อมูลแบบครั้งเดียวและแบบตามเวลาที่ได้รับอนุญาตจากโทเค็น OAuth ที่ใช้ในคำขอ ผู้ใช้จะผสมสิทธิ์เข้าถึงประเภทต่างๆ ในการให้สิทธิ์โทเค็นไม่ได้ แต่คุณไม่จำเป็นต้องคาดการณ์ว่าพฤติกรรมดังกล่าวจะเกิดขึ้นในอนาคต