我的应用程序在 checkUser 上获得 200,但在 filesUpload 上获得 400,在 filesListFolder 上获得 401 - 范围错误吗?

问题描述

我设置了一个新的 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...