问题描述
我设置了一个新的 DropBox 应用。我可以进行身份验证,并且 checkUser 调用的结果是 200。
但是,filesListFolder(路径为“”)得到 400,filesupload 也是如此。
该应用程序正在使用 kotlinjs,所以这可能是问题所在(尽管我成功包装了其他库,并且到此为止的 oauth 流程已成功);这也可能是范围问题(应用程序仍处于开发模式,我选择了 account_info.read/write、files.Metadata.read/write、files.content.read/write 并将其保存在仪表板中。)
我正在使用此流程 https://github.com/dropbox/dropbox-sdk-js/blob/main/examples/javascript/auth/index.html 而不是 https://dropbox.tech/developers/pkce--what-and-why-(考虑到我最初遇到 https://github.com/dropbox/dropbox-sdk-js/issues/527 与后者。)
代码:
fun testWithToken(token: String) {
val auth = object: DropBox.AuthenticatedOpts {
override val accesstoken: String
get() = token
}
val dbx = DropBox.DropBox(auth)
dbx.checkUser(auth).then(onFulfilled = { resp ->
console.log("Can connect")
console.log(resp)
},onRejected = { err ->
console.log("Can't even auth")
console.log(err)
})
dbx.filesupload(object: DropBox.UploadRequest {
override val path: String
get() = "foo.txt"
override val contents: String
get() = "This is the content right here"
override val mute: Boolean
get() = false
}).then(onFulfilled = { resp ->
console.log("Uploaded file!")
console.log(resp)
},onRejected = { err ->
console.log("Couldn't upload!")
console.log(err)
})
// also tried with the object shown below for these request args
dbx.filesListFolder(mapOf("path" to "")).then(onFulfilled = { resp ->
console.log("Success")
console.log(resp)
},onRejected = { err ->
console.log("Fail")
console.log(err)
})
}
// ---
@JsModule("dropBox")
@JsNonModule
external object DropBox {
interface UnauthenticatedOpts {
val clientId: String
}
interface AuthenticatedOpts {
val accesstoken: String
}
interface ListRequest {
val path: String
val recursive: Boolean
val include_media_info: Boolean
val include_deleted: Boolean
val include_has_explicit_shared_members: Boolean
val include_mounted_folders: Boolean
val include_non_downloadable_files: Boolean
}
interface UploadRequest {
val path: String
val contents: String
val mute: Boolean
}
class DropBox(opts: UnauthenticatedOpts) {
constructor(opts: AuthenticatedOpts)
class Auth {
fun getAuthenticationUrl(redirectUri: String): Promise<String>
}
val auth: Auth = definedExternally
fun checkUser(opts: AuthenticatedOpts): Promise<Map<String,Any>>
fun filesListFolder(opts: Map<String,Any>): Promise<Map<String,Any>>
fun filesupload(opts: UploadRequest): Promise<Map<String,Any>>
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)