เอกสารนี้อธิบายวิธีผสานรวม Google Picker เข้ากับแอปเดสก์ท็อป และแอปบนอุปกรณ์เคลื่อนที่โดยใช้ Google Picker API
Google Picker API เป็นวิธีที่ช่วยให้ผู้ใช้เลือกหรืออัปโหลดไฟล์ใน Google ไดรฟ์ได้ ผู้ใช้สามารถให้สิทธิ์แอปบนเดสก์ท็อป อุปกรณ์เคลื่อนที่ หรือเว็บแอปของคุณเพื่อเข้าถึง ข้อมูลในไดรฟ์ ซึ่งเป็นวิธีที่ปลอดภัยและได้รับอนุญาตในการ โต้ตอบกับไฟล์
ฟีเจอร์
เครื่องมือเลือกของ Google มีฟีเจอร์หลายอย่าง ได้แก่
- รูปลักษณ์และฟีเจอร์คล้ายกับ UI ของ Google ไดรฟ์
- มุมมองหลายรายการที่แสดงตัวอย่างและภาพขนาดย่อของไฟล์ในไดรฟ์
- มุมมองที่กรองไว้ล่วงหน้าซึ่งแสดงเฉพาะประเภทไฟล์ที่เฉพาะเจาะจง (เช่น PDF หรือรูปภาพ) หรือโฟลเดอร์บางโฟลเดอร์
- การเปลี่ยนเส้นทางไปยัง Google Picker ในแท็บใหม่ในเบราว์เซอร์เริ่มต้นของผู้ใช้
โปรดทราบว่าแม้ว่าคุณจะเลือกและอัปโหลดไฟล์ด้วย Google Picker ได้ แต่ก็ไม่อนุญาตให้ผู้ใช้จัดระเบียบ ย้าย หรือคัดลอกไฟล์จากโฟลเดอร์หนึ่งไปยัง อีกโฟลเดอร์หนึ่ง หากต้องการจัดการไฟล์ คุณต้องใช้ Google Drive API หรือ UI ของไดรฟ์
ข้อกำหนดเบื้องต้น
แอปที่ใช้ Google Picker ต้องปฏิบัติตามข้อกำหนดในการให้บริการที่มีอยู่ทั้งหมด ที่สำคัญที่สุดคือคุณต้องระบุตัวตนในคำขออย่างถูกต้อง
นอกจากนี้ คุณต้องมีโปรเจ็กต์ Google Cloud ด้วย
ตั้งค่าสภาพแวดล้อม
หากต้องการเริ่มใช้ Google Picker API คุณต้องตั้งค่าสภาพแวดล้อม
เปิดใช้ API
ก่อนใช้ Google API คุณต้องเปิดใช้ API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google คุณเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud เดียวได้เปิดใช้ Google Picker API ในคอนโซล Google Cloud
ตั้งค่าการตรวจสอบสิทธิ์และการให้สิทธิ์
หากต้องการตรวจสอบสิทธิ์ผู้ใช้ปลายทางและเข้าถึงข้อมูลผู้ใช้ในแอป คุณต้อง สร้างรหัสไคลเอ็นต์ OAuth 2.0 อย่างน้อย 1 รายการ รหัสไคลเอ็นต์ใช้เพื่อระบุ แอปเดี่ยวไปยังเซิร์ฟเวอร์ OAuth ของ Google หากแอปทำงานบนหลายแพลตฟอร์ม คุณต้องสร้างรหัสไคลเอ็นต์แยกต่างหากสำหรับแต่ละแพลตฟอร์มให้สิทธิ์ข้อมูลเข้าสู่ระบบสำหรับแอปบนเดสก์ท็อป
หากต้องการสร้างรหัสไคลเอ็นต์ OAuth 2.0 ให้ทำตามขั้นตอนต่อไปนี้
- ใน คอนโซล Google API ให้ไปที่เมนู > แพลตฟอร์มการตรวจสอบสิทธิ์ของ Google > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > แอปเดสก์ท็อป
- ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ โดยชื่อนี้จะแสดงในคอนโซล Google API เท่านั้น
- คลิกสร้าง
ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"
หากต้องการให้แอปได้รับสิทธิ์เข้าถึงไฟล์ที่เคยให้ไว้ คุณต้องทำตามขั้นตอนต่อไปนี้
คุณต้องขอโทเค็น OAuth 2.0 ที่มีขอบเขต
drive.file,driveหรือdrive.readonlyโดยใช้คำสั่งเหล่านี้: การใช้ OAuth 2.0 เพื่อเข้าถึง Google APIs ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่เลือกขอบเขต Google Drive APIส่งโทเค็น OAuth 2.0 ไปยัง Drive API เพื่ออ่านและแก้ไขไฟล์ ที่ผู้ใช้เคยให้สิทธิ์เข้าถึงไว้
ให้สิทธิ์เข้าถึงข้อมูลเข้าสู่ระบบสำหรับแอปบนอุปกรณ์เคลื่อนที่
หากต้องการสร้างรหัสไคลเอ็นต์ OAuth 2.0 ให้ทำตามขั้นตอนในส่วนให้สิทธิ์ข้อมูลเข้าสู่ระบบ สำหรับแอปบนอุปกรณ์เคลื่อนที่
ให้สิทธิ์ข้อมูลเข้าสู่ระบบสำหรับเว็บแอป
หากต้องการสร้างรหัสไคลเอ็นต์ OAuth 2.0 ให้ทำตามขั้นตอนในส่วนให้สิทธิ์ข้อมูลเข้าสู่ระบบ สำหรับเว็บแอป
แสดง Google Picker
Google Picker API สำหรับแอปบนเดสก์ท็อปและแอปบนอุปกรณ์เคลื่อนที่จะเปลี่ยนเส้นทางไปยัง เครื่องมือเลือกของ Google ในแท็บใหม่ในเบราว์เซอร์เริ่มต้นของผู้ใช้ เมื่อ ผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ที่เกี่ยวข้องแล้ว Google Picker จะกลับไปยังแอปที่เรียกใช้ผ่าน URL ของการเรียกกลับ
หากต้องการให้ Google Picker API เปิดในหน้าไคลเอ็นต์ ให้ใช้ Google Picker API สำหรับเว็บแอปแทน ดูข้อมูลเพิ่มเติมได้ที่ผสานรวม Google Picker เข้ากับเว็บแอป
หากต้องการอนุญาตให้ผู้ใช้ให้สิทธิ์เข้าถึงไฟล์เพิ่มเติมหรือเลือกไฟล์เพื่อใช้ในโฟลว์ของแอป ให้ทำตามขั้นตอนต่อไปนี้
ขอสิทธิ์เข้าถึงขอบเขต
drive.fileเพื่อเปิดหน้าการเข้าถึง OAuth 2.0 ในแท็บเบราว์เซอร์ใหม่โดยใช้คำสั่งการใช้ OAuth 2.0 เพื่อเข้าถึง Google APIs ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่เลือกขอบเขต Google Drive APIโปรดทราบว่าแอปเหล่านี้ได้รับอนุญาตให้ใช้ขอบเขต
drive.fileเท่านั้น และไม่สามารถใช้ร่วมกับขอบเขตอื่นๆ ได้URL สำหรับแท็บเบราว์เซอร์ใหม่ยอมรับพารามิเตอร์สตริงการค้นหา OAuth มาตรฐานทั้งหมด
คุณต้องต่อท้ายพารามิเตอร์ URL
promptและtrigger_onepickไปยัง คำขอ URL การให้สิทธิ์ OAuth 2.0 นอกจากนี้ คุณยังปรับแต่ง เครื่องมือเลือกของ Google ด้วยพารามิเตอร์อื่นๆ ได้ด้วย (ไม่บังคับ)พารามิเตอร์ คำอธิบาย สถานะ prompt=consentแจ้งให้ขอสิทธิ์เข้าถึงไฟล์ ต้องระบุ trigger_onepick=trueเปิดใช้เครื่องมือเลือกของ Google ต้องระบุ allow_multiple=trueหากเป็นจริง ให้ผู้ใช้เลือกหลายไฟล์ได้ ไม่บังคับ mimetypes=MIMETYPESรายการประเภท MIME ที่คั่นด้วยคอมมาเพื่อกรองผลการค้นหา หากไม่ได้ตั้งค่า ระบบจะแสดงไฟล์สำหรับ MIME ทุกประเภทในมุมมอง ไม่บังคับ file_ids=FILE_IDSรายการรหัสไฟล์ที่คั่นด้วยคอมมาเพื่อกรองผลการค้นหา หากไม่ได้ตั้งค่าไว้ ระบบจะแสดงไฟล์ทั้งหมดในมุมมอง ไม่บังคับ allow_folder_selection=trueหากเป็นจริง ให้อนุญาตให้ผู้ใช้เลือกโฟลเดอร์ด้วย ไม่บังคับ ตัวอย่างต่อไปนี้แสดงคำขอ URL การให้สิทธิ์ OAuth 2.0
https://accounts.google.com/o/oauth2/v2/auth? \ client_id=CLIENT_ID \ &scope=https://www.googleapis.com/auth/drive.file \ &redirect_uri=REDIRECT_URI \ &response_type=code \ &access_type=offline \ &prompt=consent \ &trigger_onepick=trueแทนที่ค่าต่อไปนี้
CLIENT_ID: รหัสไคลเอ็นต์ของแอปREDIRECT_URI: ตำแหน่งที่เซิร์ฟเวอร์การให้สิทธิ์ เปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้หลังจากตรวจสอบสิทธิ์สำเร็จ เช่นhttps://www.cymbalgroup.com/oauth2callbackredirect_uriที่ระบุต้องเป็น HTTPS URL สาธารณะ หากต้องการใช้ โปรโตคอลที่กำหนดเองหรือ URL ของ localhost สำหรับredirect_uriคุณต้องใช้ HTTPS URL สาธารณะที่เปลี่ยนเส้นทางไปยังโปรโตคอลที่กำหนดเองหรือ URL ของ localhost
เมื่อผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ที่เกี่ยวข้องแล้ว OAuth จะเปลี่ยนเส้นทางไปยัง
redirect_uriที่ระบุในคำขอพร้อมกับพารามิเตอร์ URL ต่อไปนี้picked_file_ids: หากผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ จะเป็น รายการรหัสไฟล์ที่เลือกซึ่งคั่นด้วยคอมมาcode: โทเค็นเพื่อการเข้าถึงหรือรหัสเพื่อการเข้าถึงตามresponse_typeพารามิเตอร์ที่ตั้งค่าไว้ในคำขอ พารามิเตอร์นี้มีรหัสการให้สิทธิ์ใหม่scope: ขอบเขตที่รวมอยู่ในคำขอerror: หากผู้ใช้ยกเลิกคำขอภายในโฟลว์ความยินยอม ระบบจะแสดงข้อผิดพลาด
ตัวอย่างต่อไปนี้แสดงการตอบกลับ URL การให้สิทธิ์ OAuth 2.0
https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPESแอปต้องแลกรหัสการให้สิทธิ์จากขั้นตอนที่ 3 เป็นโทเค็น OAuth 2.0 ใหม่ ดูข้อมูลเพิ่มเติมได้ที่แลกรหัสการให้สิทธิ์เป็นโทเค็นการรีเฟรชและโทเค็นเพื่อการเข้าถึง
จากนั้นแอปจะใช้รหัสไฟล์จากพารามิเตอร์ URL ในขั้นตอนที่ 3 และโทเค็น OAuth 2.0 ที่ได้รับในขั้นตอนที่ 4 เพื่อเรียกใช้ Drive API ได้ ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ Google Drive API
ใช้เครื่องมือเลือกของ Google กับแอป Android
นอกจากนี้ คุณยังใช้เครื่องมือเลือกของ Google ในแอปบนอุปกรณ์เคลื่อนที่ Android ได้ด้วย
ให้สิทธิ์เข้าถึงข้อมูลเข้าสู่ระบบสำหรับแอปบนอุปกรณ์เคลื่อนที่
หากต้องการใช้ Google Picker ในแอป Android คุณต้องให้สิทธิ์ผู้ใช้โดยใช้ OAuth 2.0 เช่นเดียวกับแอปเดสก์ท็อป โปรดดูรายละเอียดเกี่ยวกับการตรวจสอบสิทธิ์ Android ที่หัวข้อให้สิทธิ์เข้าถึงข้อมูลผู้ใช้ Google
หากต้องการแสดง Google Picker ระหว่างการให้สิทธิ์ ให้สร้าง
AuthorizationRequest
และใช้พารามิเตอร์ทรัพยากร PICKER_OAUTH_TRIGGER ในออบเจ็กต์
AuthorizationRequest.ResourceParameter
เมื่อสร้าง AuthorizationRequest ให้ทำดังนี้
ใช้ขอบเขต
drive.fileเรียกใช้
setOptOutIncludingGrantedScopesไปยังtrueเพื่อให้แน่ใจว่าโทเค็นที่ส่งคืนมีไว้สำหรับขอบเขตdrive.fileเท่านั้น และไม่ใช่สำหรับขอบเขตที่ให้ไว้ก่อนหน้านี้ตั้งค่าฟิลด์
AuthorizationRequest.Promptเป็นCONSENTเพื่อแจ้งให้ผู้ใช้ขอความยินยอมแม้ว่าจะได้รับความยินยอม ก่อนหน้านี้แล้วก็ตามคุณอาจใช้ตัวดำเนินการบิตแมป "OR" (
|) เพื่อตั้งค่าฟิลด์AuthorizationRequest.Promptเป็นSELECT_ACCOUNTเพื่อให้ผู้ใช้ เลือกบัญชีก่อนที่จะแสดงข้อความขอความยินยอมได้
เรียกใช้เครื่องมือเลือกของ Google
คุณปรับแต่ง Google Picker ได้ด้วยพารามิเตอร์ที่ไม่บังคับหลายรายการเช่นเดียวกับแอปบนเดสก์ท็อป ดังนี้
PICKER_ALLOW_MULTIPLE: อนุญาตให้ผู้ใช้เลือกหลายไฟล์PICKER_MIMETYPES: รับรายการประเภท MIME ที่คั่นด้วยคอมมาเพื่อกรองผลการค้นหา หากไม่ได้ตั้งค่า ระบบจะแสดงไฟล์สำหรับ MIME ทุกประเภทในมุมมองPICKER_FILE_IDS: รับรายการรหัสไฟล์ที่คั่นด้วยคอมมาเพื่อกรองผลการค้นหา หากไม่ได้ตั้งค่า ระบบจะแสดงไฟล์ทั้งหมดในมุมมองPICKER_ALLOW_FOLDER_SELECTION: อนุญาตให้ผู้ใช้เลือกโฟลเดอร์ได้ด้วย
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ที่ไม่บังคับในแอปบนเดสก์ท็อปได้ที่แสดง ตัวเลือกไฟล์ของ Google
เมื่อผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ที่เกี่ยวข้องแล้ว ระบบจะแสดงออบเจ็กต์ของทรัพยากร
AuthorizationResult
getTokenResponseParams
หากผู้ใช้ให้สิทธิ์เข้าถึง ออบเจ็กต์นี้จะมีค่า picked_file_ids ซึ่งเป็นรายการรหัสไฟล์ที่เลือกโดยคั่นด้วยคอมมา