Skip to content

เพิ่มช่องทาง Dropbox

สิ่งที่ต้องเตรียมก่อน

ข้อกำหนดทำไมต้องใช้
Dropbox accountใช้เข้าสู่ระบบและ authorize app
Dropbox appใช้สร้าง App Key และ App Secret
ImgHost domain ของคุณใช้เป็น OAuth redirect URI
พื้นที่ Dropbox ที่พร้อมใช้งานใช้เป็นพื้นที่เก็บไฟล์จริง

ขั้นตอนตั้งค่า

ขั้นตอนที่ 1: สร้าง Dropbox App

  1. เปิด Dropbox App Console:
text
https://www.dropbox.com/developers/apps
  1. สร้าง app ใหม่
  2. สำหรับประเภทการเข้าถึง ให้เลือก:
text
App folder
  1. ตั้งชื่อ app ให้จำง่าย เช่น imgbed-app
  2. เปิดหน้า app details หลังสร้างเสร็จ

ประเภทการเข้าถึงที่แนะนำ:

ประเภทการเข้าถึงคำแนะนำ
App folderแนะนำ เพราะตรงกับวิธีที่ ImgHost จัดเก็บไฟล์
Full Dropboxไม่แนะนำ เพราะ ImgHost ไม่จำเป็นต้องเข้าถึงทั้ง account

สร้าง Dropbox app

ขั้นตอนที่ 2: เพิ่ม Redirect URI

ในหน้า details ของ Dropbox app ให้หา OAuth หรือการตั้งค่า Redirect URI แล้วเพิ่ม:

text
https://your-domain.com/api/oauth/dropbox/callback

ถ้าใช้ admin panel จากหลาย domain ให้เพิ่ม callback URL ที่ตรงกันทุกตัว

กำหนดค่า redirect URI

ขั้นตอนที่ 3: กำหนดค่า App Permissions

เปิด tab Permissions แล้ว enable scopes อย่างน้อยเหล่านี้:

Scopeจำเป็นวัตถุประสงค์
account_info.readจำเป็นอ่าน account และข้อมูล quota
files.metadata.readจำเป็นอ่าน metadata ของไฟล์และโฟลเดอร์สำหรับ path checks
files.metadata.writeจำเป็นสร้างโฟลเดอร์และเขียน metadata
files.content.writeจำเป็นอัปโหลดไฟล์ ถ้าขาด scope นี้จะเกิด required scope 'files.content.write'
files.content.readแนะนำอนุญาต download, preview และ temporary file links

เลือก scopes แล้วคลิก Submit ด้านล่างหน้า

เพิ่ม permissions

สำคัญ:

สถานการณ์ควรทำอะไร
เปลี่ยน scopesเรียกใช้ token authorization flow ใหม่และรับ Refresh Token ใหม่
ไม่ reauthorizeToken เก่าจะไม่ได้ permissions ใหม่ ทำให้การอัปโหลดยังล้มเหลวได้

ขั้นตอนที่ 4: คัดลอก App Credentials

บันทึกค่าสองตัวนี้จากหน้า Dropbox app:

ฟิลด์ Dropboxฟิลด์ ImgHost
App keyApp Key
App secretApp Secret

ขั้นตอนที่ 5: ใส่ช่องทาง Dropbox

ใน Upload Settings เลือก Dropbox แล้วกรอก:

ฟิลด์ ImgHostใส่อะไร
Channel nameชื่อที่จำง่าย เช่น Main Dropbox
App KeyDropbox App key
App SecretDropbox App secret
Refresh Tokenเว้นว่างไว้ก่อน
Root directoryไม่บังคับ ค่าเริ่มต้นคือ imgbed
Noteไม่บังคับ

รับ token

ขั้นตอนที่ 6: รับ Refresh Token

  1. ใน ImgHost คลิก Get Token
  2. เข้าสู่ระบบ Dropbox account ที่ต้องการเชื่อมต่อ
  3. อนุมัติ authorization prompt
  4. หน้า callback จะแสดง Refresh Token
  5. คัดลอก token นั้น
  6. กลับไปที่ ImgHost แล้ววางในฟิลด์ Refresh Token

คัดลอก token

วิธีตรวจสอบ

รายการตรวจสอบผลลัพธ์ที่คาดหวัง
การ์ดช่องทางช่องทาง Dropbox แสดงหลังบันทึก
สวิตช์ช่องทางเปิดใช้งานช่องทางได้
บันทึก token แล้วDetail page แสดงว่า Refresh Token ถูกบันทึกแล้ว
ทดสอบอัปโหลดรูปทดสอบปรากฏใน Dropbox app folder

ถ้าเปิด quota limits ให้คลิก quota query หลัง query สำเร็จ การ์ดช่องทางจะแสดง used space, total space และ last update time

Quota query สำเร็จ

การแก้ไขปัญหา

ปัญหาวิธีแก้ไข
ImgHost แจ้งว่าการกำหนดค่ายังไม่ครบตรวจว่า App Key, App Secret และ Refresh Token ถูกกรอกครบ
Authorization สำเร็จแต่ไม่มี Refresh Tokenคลิก Get Token อีกครั้งและตรวจว่าใช้ offline authorization flow
อัปโหลดล้มเหลวด้วย required scope 'files.content.write'Enable files.content.write, คลิก Submit, แล้วรับ Refresh Token ใหม่
Callback ล้มเหลวยืนยันว่า redirect URI เป็น https://your-domain.com/api/oauth/dropbox/callback
หาไฟล์ไม่เจอยืนยันว่า Dropbox app สร้างใน mode App folder

ลำดับขั้นตอนด่วน

text
Open Dropbox App Console
-> Create an app
-> Choose App folder access
-> Add https://your-domain.com/api/oauth/dropbox/callback
-> Enable account_info.read / files.metadata.read / files.metadata.write / files.content.write
-> Optionally enable files.content.read
-> Click Submit
-> Copy App Key and App Secret
-> Fill them into ImgHost
-> Click Get Token
-> Copy the Refresh Token from the callback page
-> Paste it back into ImgHost and save

เอกสารอ้างอิง

  1. Dropbox App Console: https://www.dropbox.com/developers/apps
  2. คู่มือ Dropbox OAuth: https://developers.dropbox.com/oauth-guide
  3. คู่มือ Dropbox Developer: https://www.dropbox.com/developers/reference/developer-guide

Released as user documentation for ImgHost.