示例 onedrive winforms 应用 vb.net

Sample onedrive winforms app vb.net

我一直在网上搜索用 vb.net 编写的基本示例 winforms 应用程序,用于将文件上传到 onedrive。有人知道吗?

我正在尝试使用 vb.net 中的 winforms 应用上传文件。我就让身份验证正常工作...但是调用下一个方法 returns a 401...

我做了以下事情:

共享范围 As String = "wl.skydrive_update" 共享 client_id 作为字符串 = "0000000040144E26" Shared signInUrl As New Uri([String].Format("https://login.live.com/oauth20_authorize.srf?client_id={0}&redirect_uri=https://login.live.com/oauth20_desktop.srf&response_type=code&scope={1}", client_id, scope))

Private Sub cmdOneDriveAuth_Click(sender As Object, e As EventArgs) 句柄 cmdOneDriveAuth.Click 尝试 Dim auth 作为新的 FrmAuthBrowser auth.WebBrowser1.Navigate(signInUrl) auth.Show()

    Catch ex As Exception

    End Try
End Sub

然后在授权中window:

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Try
        If WebBrowser1.Url.AbsoluteUri.Contains("code=") Then
            Dim AuthCode As String = System.Web.HttpUtility.ParseQueryString(WebBrowser1.Url.Query)("code")
            My.Settings.OneDrive_Enabled = True
            My.Settings.OneDrive_AuthCode = AuthCode
            My.Settings.Save()
            Me.Dispose()
        End If


    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub

但是当我尝试获取根信息时,我收到了 401...

Private Sub Button1_Click(sender As Object, e As EventArgs) 句柄 Button1.Click 尝试 昏暗的客户端作为新的 WebClient() 昏暗的结果 = client.OpenRead(New Uri("https://apis.live.net/v5.0/me/skydrive?access_token=" + My.Settings.OneDrive_AuthCode)) Dim sr As StreamReader = New StreamReader(结果) MsgBox(sr.ReadToEnd()) Catch ex As 异常 MsgBox(ex.ToString) 结束尝试 结束子

谁能给我一些指导?

看起来您正在使用 OAuth 的 'code' 流程,但您漏掉了一个步骤。您返回的 'code' 与 access_token 不同。您需要先再次调用登录服务器以将您的代码换成 access_token。

POST https://login.live.com/oauth20_token.srf
Content-Type: application/x-www-form-urlencoded

client_id={client_id}&redirect_uri={redirect_uri}&client_secret={client_secret}
&code={code}&grant_type=authorization_code

您可以在此处找到更多详细信息 http://onedrive.github.io/auth/msa_oauth.htm#code-flow

OneDrive 刚刚发布了一个新的 API,因此我鼓励您检查一下。 http://onedrive.github.io/

还有一个示例 Windows/C# 应用程序,您可以查看该应用程序以获取有关如何登录和上传文件的参考。 https://github.com/OneDrive/onedrive-explorer-win