ในการเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณจะได้รับโทเค็น 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.search
URL ที่สร้างขึ้นจะมีลักษณะดังนี้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
พิมพ์คำสั่งก่อนหน้าซ้ำเพื่อส่งคำขอที่ตรวจสอบสิทธิ์แล้วไปยังปลายทาง
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": "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
ซ้ำได้