คอมโพเนนต์เว็บ Google Picker เป็นอีกวิธีหนึ่งในการผสานรวม Google Picker API เข้ากับเว็บแอป
คอมโพเนนต์เว็บช่วยลดความซับซ้อนในการผสานรวมการเลือกไฟล์จาก Google ไดรฟ์เข้ากับเว็บแอป โดยจะรวมตรรกะการโหลดและการตรวจสอบสิทธิ์ API ที่ซ้ำซ้อนทั้งหมดไว้ในองค์ประกอบ HTML เดียว ซึ่งช่วยให้คุณวางแท็ก <drive-picker> ลงใน
โค้ดได้โดยตรงโดยไม่ต้องเขียนตรรกะการโหลด gapi คอมโพเนนต์นี้สามารถใช้ใน HTML และ JavaScript ธรรมดาได้ และยังไม่ขึ้นอยู่กับเฟรมเวิร์ก จึงทำงานร่วมกับ Svelte, Vue, Angular และอื่นๆ ได้อย่างราบรื่น
ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีคอมโพเนนต์เว็บได้ที่
@googleworkspace/drive-picker-element
สำหรับแอป React ให้ใช้แพ็กเกจ React Wrapper อย่างเป็นทางการของคอมโพเนนต์เว็บ:
@googleworkspace/drive-picker-react
ฟีเจอร์หลัก
- การผสานรวมที่ตรงไปตรงมา: เพิ่ม Google Picker ลงในเว็บแอปด้วยโค้ดเพียงไม่กี่บรรทัด
- ไม่ขึ้นอยู่กับเฟรมเวิร์ก: ทำงานร่วมกับเฟรมเวิร์กเว็บที่คุณเลือกได้อย่างราบรื่น (React, Vue, Angular ฯลฯ)
- โอเพนซอร์สและปรับแต่งได้: โค้ดพร้อมใช้งานฟรีและคุณสามารถปรับแต่งให้เหมาะกับความต้องการเฉพาะของคุณได้
- รองรับ OAuth ได้อย่างราบรื่น: จัดการการตรวจสอบสิทธิ์ของผู้ใช้โดยอัตโนมัติ ทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ราบรื่น
- มุมมองที่ปรับแต่งได้: กำหนดค่า Google Picker ให้แสดงเฉพาะประเภทไฟล์หรือมุมมองที่คุณต้องการโดยการตั้งค่าแอตทริบิวต์
เริ่มต้นใช้งาน
ติดตั้งคอมโพเนนต์โดยใช้ NPM หรือเครื่องมือที่คล้ายกัน
npm i @googleworkspace/drive-picker-elementนอกจากนี้ยังมีเวอร์ชัน CDN ให้ใช้งานด้วย ดูรูปแบบและเวอร์ชันที่พร้อมใช้งานได้ที่
unpkg<script src="https://unpkg.com/@googleworkspace/drive-picker-element@latest/dist/index.iife.min.js"></script>นำเข้าคอมโพเนนต์
@googleworkspace/drive-picker-elementลงในไฟล์ JavaScriptimport "@googleworkspace/drive-picker-element";คุณไม่จำเป็นต้องนำเข้าหากใช้เวอร์ชัน CDN เนื่องจากระบบจะโหลดไลบรารี Google Picker และไลบรารีของไคลเอ็นต์ Google API ที่ใช้สำหรับการตรวจสอบสิทธิ์โดยอัตโนมัติ
เพิ่มองค์ประกอบที่กำหนดเองลงในไฟล์ HTML
<drive-picker> <drive-picker-docs-view></drive-picker-docs-view> </drive-picker>ดูแอตทริบิวต์และพร็อพเพอร์ตี้ของ
<drive-picker/>และ<drive-picker-docs-view/>ได้ในเอกสารอ้างอิงสำหรับ@googleworkspace/drive-picker-element
กิจกรรม
องค์ประกอบ <drive-picker/> จะส่งกิจกรรมที่กำหนดเองต่อไปนี้
| กิจกรรม | คำอธิบาย |
|---|---|
picker-picked |
ทริกเกอร์เมื่อผู้ใช้เลือกอย่างน้อย 1 รายการ |
picker-canceled |
ทริกเกอร์เมื่อผู้ใช้ยกเลิกการเลือกโดยคลิกปุ่ม "ยกเลิก" หรือปิดกล่องโต้ตอบโดยไม่ได้เลือก |
picker-error |
ทริกเกอร์เมื่อเกิดข้อผิดพลาดระหว่างการเริ่มต้นหรือการเลือกไฟล์ |
ดูข้อมูลเพิ่มเติมเกี่ยวกับกิจกรรมได้ใน
@googleworkspace/drive-picker-element
เอกสารประกอบใน NPM
รายละเอียดกิจกรรม
สำหรับกิจกรรม picker-picked รายละเอียดกิจกรรมจะมี Google Picker แบบเต็ม
ResponseObject
{
"type": "picker-picked",
"detail": {
"action": "PICKED",
"docs": [
{
"id": ID,
"mimeType": "application/pdf",
"name": NAME,
"url": "https://drive.google.com/file/d/ID/view?usp=drive_web",
"sizeBytes": 12345
}
]
}
}
พร็อพเพอร์ตี้ที่ใช้กันโดยทั่วไปในออบเจ็กต์การตอบกลับ ได้แก่
action: การดำเนินการที่ทริกเกอร์การเรียกกลับ (เช่นPICKED)docs: อาร์เรย์ของDocumentObjectที่ผู้ใช้เลือก โดยแต่ละออบเจ็กต์จะมีพร็อพเพอร์ตี้ เช่น
สำหรับกิจกรรม picker-error นั้น event.detail จะมีออบเจ็กต์หรือสตริงข้อผิดพลาดที่อธิบายถึงความล้มเหลว (เช่น ERR_USER_NOT_AUTHENTICATED)
ตัวอย่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้คอมโพเนนต์เว็บ Google Picker สำหรับ Use Case ทั่วไป โดยให้แทนที่ข้อมูลต่อไปนี้ในตัวอย่างโค้ดแต่ละรายการ
PROMPT: รายการพรอมต์การให้สิทธิ์บัญชี Google ที่คั่นด้วยช่องว่างและคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เพื่อแสดงต่อผู้ใช้ ดูข้อมูลเพิ่มเติมได้ที่
TokenClientConfig.promptORIGIN: พารามิเตอร์ Origin สำหรับ Picker เช่น
https://developers.google.comดูข้อมูลเพิ่มเติมได้ที่PickerBuilder.setOriginเมธอดAPP_ID: รหัสแอปไดรฟ์ ดูข้อมูลเพิ่มเติมได้ที่ เมธอด
PickerBuilder.setAppIdCLIENT_ID: รหัสไคลเอ็นต์ OAuth 2.0 ดูข้อมูลเพิ่มเติมได้ที่ หัวข้อการใช้ OAuth 2.0 เพื่อเข้าถึง Google APIs
ไฟล์ PDF
กรองมุมมองให้แสดงเฉพาะไฟล์ PDF โดยใช้แอตทริบิวต์ mime-types
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view mime-types="application/pdf"></drive-picker-docs-view>
</drive-picker>
ไฟล์รูปภาพและวิดีโอ
กรองมุมมองให้แสดงเฉพาะไฟล์รูปภาพ (JPEG, PNG) และวิดีโอ (MP4, QuickTime) โดยใช้แอตทริบิวต์ mime-types
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view mime-types="image/jpeg,image/png,video/mp4,video/quicktime"></drive-picker-docs-view>
</drive-picker>
ไฟล์ที่ฉันเป็นเจ้าของ
กรองมุมมองให้แสดงเฉพาะไฟล์ที่ผู้ใช้ปัจจุบันเป็นเจ้าของโดยใช้แอตทริบิวต์ owned-by-me
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view owned-by-me="true"></drive-picker-docs-view>
</drive-picker>
ค้นหาไฟล์ที่ไม่มีชื่อ
กรองมุมมองให้แสดงไฟล์ที่ตรงกับคำค้นหา "ไม่มีชื่อ" โดยใช้แอตทริบิวต์ query
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view query="Untitled"></drive-picker-docs-view>
</drive-picker>
ไฟล์ที่ติดดาว
กรองมุมมองให้แสดงเฉพาะไฟล์ที่ติดดาวโดยใช้แอตทริบิวต์ starred
<drive-picker
prompt="PROMPT"
origin="ORIGIN"
app-id="APP_ID"
client-id="CLIENT_ID"
>
<drive-picker-docs-view starred="true"></drive-picker-docs-view>
</drive-picker>
หัวข้อที่เกี่ยวข้อง
- ดูข้อมูลเชิงลึกเกี่ยวกับแอตทริบิวต์ กิจกรรม และพร็อพเพอร์ตี้ได้ในเอกสารประกอบฉบับเต็ม
drive-picker-elementใน GitHub