没有提示和文件共享的 DropNet 身份验证

DropNet Authentication without prompts and File Sharing

几个问题:

  1. 我使用 DropNet 实现了身份验证过程。我的桌面应用程序是为最终用户设计的。每次应用程序启动时,都会弹出小浏览器 window 要求用户确认访问... 有没有什么方法可以让拥有某种已保存凭据(或用户代码+用户密码,或API代码+API密码)的最终用户能够调用应用程序而不被浏览器提示表单(当前需要登录 - 如果访问令牌过期 - 或确认)?

  2. 我的应用程序的目标是文件共享 - 也就是说,一个最终用户可以将 URL(到他上传到 DropBox 的文件)发送给另一个用户,而后者应该是可以通过单击 link 下载文件(没有任何提示,就像手动将 link 共享到 DropBox 中的文件一样)。可能吗?如果是,如何实现?这就是我如何获得 URL 的?多余的说我正在寻找一种编程方式来获得 URL 将实现上述)

对于初学者,请阅读 Dropbox API 的 API 文档。 https://www.dropbox.com/developers/core/docs 它将为您解答一些问题。

  1. 是的,可以保存身份验证令牌以保存用户每次登录。在调用 GetAccessToken() 之后的身份验证过程结束时,DropNetClient 实例将有一个名为 UserLogin 的 属性,其中包含一个用户令牌和秘密。存储这些,然后下次创建 DropNetClient 用户的实例时,构造函数将这些作为参数。

  2. API 可以获取文件的共享 link。这是由 DropNet 使用 GetShareGetShareAsync 方法公开的。

谢谢大家,感谢提示,现在开始工作,文件已上传到 Dropbox 应用程序中的文件夹,代码如下:

Dim client As DropNetClient
    Dim dropboxLoggedIn As Boolean = False
    Dim dropboxAsecret
    Dim dropboxAtoken
    Dim token As UserLogin
    Dim url As String = ""

    Private Sub test_form_Load(sender As Object, e As EventArgs) Handles MyBase.Load


        client = New DropNetClient("xxxxxx", "xxxxxxx")
        client.UseSandbox = True

        Dim login = client.UserLogin

        token = client.GetToken()
        url = client.BuildAuthorizeUrl()

        Process.Start(url)

    End Sub


    Private Sub ButtonX2_Click(sender As Object, e As EventArgs) Handles ButtonX2.Click

        client.GetAccessToken()
        dropboxAsecret = client.UserLogin.Secret
        dropboxAtoken = client.UserLogin.Token


        Try
            Dim rawData As Byte() = File.ReadAllBytes("c:\flor_lotus.png")
            Dim result As MetaData = client.UploadFile("/geral", "flor_lotus.png", rawData)
        Catch ex As DropNet.Exceptions.DropboxException
            MessageBox.Show(ex.Message)
        End Try

    End Sub