ภาพรวมของแอปบนเดสก์ท็อปและอุปกรณ์เคลื่อนที่

Google Picker API เป็นวิธีที่ช่วยให้ผู้ใช้เลือกหรืออัปโหลดไฟล์ใน Google ไดรฟ์ได้ ผู้ใช้สามารถให้สิทธิ์แอปบนเดสก์ท็อปและอุปกรณ์เคลื่อนที่ของคุณเพื่อเข้าถึงข้อมูลในไดรฟ์ ซึ่งเป็นวิธีที่ปลอดภัยและได้รับอนุญาตในการโต้ตอบกับไฟล์

Google Picker ทำหน้าที่เป็นกล่องโต้ตอบ "เปิดไฟล์" สำหรับไฟล์ที่จัดเก็บไว้ในไดรฟ์และมีฟีเจอร์หลายอย่าง ดังนี้

  • รูปลักษณ์และฟีเจอร์คล้ายกับ UI ของ Google ไดรฟ์
  • มุมมองหลายรายการที่แสดงตัวอย่างและภาพขนาดย่อของไฟล์ในไดรฟ์
  • การเปลี่ยนเส้นทางไปยัง Google Picker ในแท็บใหม่ในเบราว์เซอร์เริ่มต้นของผู้ใช้

โปรดทราบว่า Google Picker ไม่อนุญาตให้ผู้ใช้จัดระเบียบ ย้าย หรือคัดลอก ไฟล์จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่ง หากต้องการจัดการไฟล์ คุณต้องใช้ Google Drive API หรือ UI ของไดรฟ์

ข้อกำหนดเบื้องต้น

แอปที่ใช้ Google Picker ต้องปฏิบัติตามข้อกำหนดในการให้บริการที่มีอยู่ทั้งหมด ที่สำคัญที่สุดคือคุณต้องระบุตัวตนในคำขออย่างถูกต้อง

นอกจากนี้ คุณต้องมีโปรเจ็กต์ Google Cloud ด้วย

ตั้งค่าสภาพแวดล้อม

หากต้องการเริ่มใช้ Google Picker API คุณต้องตั้งค่าสภาพแวดล้อม

เปิดใช้ API

ก่อนใช้ Google API คุณต้องเปิดใช้ API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google คุณเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud เดียวได้

สร้างคีย์ API

คีย์ API คือสตริงยาวที่มีตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก ตัวเลข ขีดล่าง และขีดกลาง เช่น AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe วิธีการตรวจสอบสิทธิ์นี้ใช้เพื่อเข้าถึงข้อมูลที่เปิดเผยต่อสาธารณะโดยไม่ระบุตัวตน เช่น ไฟล์ Google Workspace ที่แชร์โดยใช้การตั้งค่าการแชร์ "ทุกคนบนอินเทอร์เน็ต ที่มีลิงก์นี้" โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อจัดการคีย์ API

วิธีสร้างคีย์ API

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > ข้อมูลเข้าสู่ระบบ

    ไปที่ข้อมูลเข้าสู่ระบบ

  2. คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API
  3. ระบบจะแสดงคีย์ API ใหม่
    • คลิกคัดลอก เพื่อคัดลอกคีย์ API สำหรับใช้ ในโค้ดของแอป คุณยังดูคีย์ API ได้ในส่วน "คีย์ API" ของข้อมูลเข้าสู่ระบบของโปรเจ็กต์
    • เราขอแนะนำให้จำกัดตำแหน่งและ API ที่ใช้คีย์ API ได้เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต ดูรายละเอียดเพิ่มเติมได้ที่ เพิ่มการจำกัด API

ให้สิทธิ์ข้อมูลเข้าสู่ระบบสำหรับแอปบนเดสก์ท็อป

หากต้องการตรวจสอบสิทธิ์ผู้ใช้ปลายทางและเข้าถึงข้อมูลผู้ใช้ในแอป คุณต้อง สร้างรหัสไคลเอ็นต์ OAuth 2.0 อย่างน้อย 1 รายการ รหัสไคลเอ็นต์ใช้เพื่อระบุ แอปเดี่ยวไปยังเซิร์ฟเวอร์ OAuth ของ Google หากแอปทำงานบนหลายแพลตฟอร์ม คุณต้องสร้างรหัสไคลเอ็นต์แยกต่างหากสำหรับแต่ละแพลตฟอร์ม
  1. ใน คอนโซล Google API ให้ไปที่เมนู > แพลตฟอร์มการตรวจสอบสิทธิ์ของ Google > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > แอปเดสก์ท็อป
  4. ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google API เท่านั้น
  5. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

หากต้องการให้แอปได้รับสิทธิ์เข้าถึงไฟล์ที่เคยให้ไว้ คุณต้องทำตามขั้นตอนต่อไปนี้

  1. คุณต้องขอโทเค็น OAuth 2.0 ที่มีขอบเขต drive.file, drive หรือ drive.readonly โดยใช้คำสั่งเหล่านี้: การใช้ OAuth 2.0 เพื่อเข้าถึง Google APIs ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่เลือกขอบเขต Google Drive API

  2. ส่งโทเค็น OAuth 2.0 ไปยัง Drive API เพื่ออ่านและแก้ไขไฟล์ ที่ผู้ใช้เคยให้สิทธิ์เข้าถึงไว้ก่อนหน้านี้

แสดง Google Picker

Google Picker API สำหรับแอปเดสก์ท็อปจะเปลี่ยนเส้นทางไปยัง Google Picker ใน แท็บใหม่ในเบราว์เซอร์เริ่มต้นของผู้ใช้ เมื่อผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ที่เกี่ยวข้องแล้ว Google Picker จะกลับไปที่แอปที่เรียกใช้ผ่าน URL เรียกกลับ หากต้องการให้ Google Picker API เปิดในหน้าไคลเอ็นต์ ให้ใช้ Google Picker API สำหรับเว็บแอปแทน ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของเว็บแอป

หากต้องการอนุญาตให้ผู้ใช้ให้สิทธิ์เข้าถึงไฟล์เพิ่มเติมหรือเลือกไฟล์เพื่อใช้ในโฟลว์ของแอปบนเดสก์ท็อป ให้ทำตามขั้นตอนต่อไปนี้

  1. ขอสิทธิ์เข้าถึงขอบเขต drive.file เพื่อเปิดหน้าการเข้าถึง OAuth 2.0 ในแท็บเบราว์เซอร์ใหม่โดยใช้คำสั่งต่อไปนี้: การใช้ OAuth 2.0 เพื่อเข้าถึง Google API ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่เลือกขอบเขต Google Drive API

    โปรดทราบว่าอนุญาตให้ใช้ขอบเขต drive.file สำหรับแอปเดสก์ท็อปเท่านั้น และไม่สามารถใช้ร่วมกับขอบเขตอื่นๆ ได้

  2. URL สำหรับแท็บเบราว์เซอร์ใหม่ยอมรับพารามิเตอร์สตริงการค้นหา OAuth มาตรฐานทั้งหมด

    คุณต้องเพิ่มพารามิเตอร์ URL prompt และ trigger_onepick ลงในคำขอ URL การให้สิทธิ์ OAuth 2.0 ดังนี้

    พารามิเตอร์ คำอธิบาย สถานะ
    prompt=consent แจ้งให้ขอสิทธิ์เข้าถึงไฟล์ ต้องระบุ
    trigger_onepick=true เปิดใช้เครื่องมือเลือกของ Google ต้องระบุ

    นอกจากนี้ คุณยังปรับแต่ง Google Picker ได้ด้วยพารามิเตอร์ที่ไม่บังคับหลายรายการ ดังนี้

    พารามิเตอร์ คำอธิบาย สถานะ
    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/oauth2callback

    redirect_uri ที่ระบุต้องเป็น URL แบบ HTTPS สาธารณะ หากต้องการใช้ โปรโตคอลที่กำหนดเองหรือ URL ของ localhost สำหรับ redirect_uri คุณต้องใช้ HTTPS URL สาธารณะที่เปลี่ยนเส้นทางไปยังโปรโตคอลที่กำหนดเองหรือ URL ของ localhost

  3. เมื่อผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ที่เกี่ยวข้องแล้ว 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
    
  4. แอปต้องแลกรหัสการให้สิทธิ์จากขั้นตอนที่ 3 เป็นโทเค็น OAuth 2.0 ใหม่ ดูข้อมูลเพิ่มเติมได้ที่เปลี่ยนรหัสการให้สิทธิ์สำหรับโทเค็นการรีเฟรช และโทเค็นการเข้าถึง

  5. จากนั้นแอปจะใช้รหัสไฟล์จากพารามิเตอร์ 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 ให้ทำดังนี้

  • ใช้ขอบเขต https://www.googleapis.com/auth/drive.file
  • เรียกใช้ setOptOutIncludingGrantedScopes(true) เพื่อให้แน่ใจว่าโทเค็นที่ส่งคืนมีไว้สำหรับขอบเขต https://www.googleapis.com/auth/drive.file เท่านั้น และไม่ใช่ขอบเขตที่ได้รับก่อนหน้านี้
  • ตั้งค่าฟิลด์ AuthorizationRequest.Prompt เป็น CONSENT เพื่อแจ้งให้ผู้ใช้ขอความยินยอมแม้ว่าจะได้รับความยินยอมไปแล้วก็ตาม ฟิลด์นี้ใช้ได้กับคำขอที่มีพารามิเตอร์ทรัพยากรเท่านั้น
  • คุณอาจใช้ตัวดำเนินการบิตแมป "OR" (|) เพื่อตั้งค่าฟิลด์ AuthorizationRequest.Prompt เป็น SELECT_ACCOUNT เพื่อให้ผู้ใช้เลือกบัญชีก่อนที่จะแสดงข้อความแจ้งขอความยินยอมก็ได้

เรียกใช้เครื่องมือเลือกของ Google

คุณปรับแต่ง Google Picker ได้ด้วยพารามิเตอร์ที่ไม่บังคับหลายรายการเช่นเดียวกับแอปบนเดสก์ท็อป

  • PICKER_ALLOW_MULTIPLE: อนุญาตให้ผู้ใช้เลือกหลายไฟล์
  • PICKER_MIMETYPES: แสดงรายการประเภท MIME ที่คั่นด้วยคอมมาเพื่อกรองผลการค้นหา หากไม่ได้ตั้งค่า ระบบจะแสดงไฟล์สำหรับ MIME ทุกประเภทในมุมมอง
  • PICKER_FILE_IDS: แสดงผลรายการรหัสไฟล์ที่คั่นด้วยคอมมาเพื่อกรอง ผลการค้นหา หากไม่ได้ตั้งค่าไว้ ระบบจะแสดงไฟล์ทั้งหมดในมุมมอง

ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ที่ไม่บังคับในแอปบนเดสก์ท็อปได้ที่แสดง ตัวเลือกไฟล์ของ Google

เมื่อผู้ใช้ให้สิทธิ์เข้าถึงและเลือกไฟล์ที่เกี่ยวข้องแล้ว ระบบจะแสดงออบเจ็กต์ของทรัพยากร AuthorizationResult getTokenResponseParams หากผู้ใช้ให้สิทธิ์เข้าถึง ออบเจ็กต์นี้จะมีค่า picked_file_ids ซึ่งเป็นรายการที่คั่นด้วยคอมมาของรหัสไฟล์ที่เลือก