2014-09-24 31 views
0

我想覆蓋OneDrive上的文件。如何提供憑據來更新我的OneDrive文件?

我認爲以下是正確的方法,但我沒有看到我將爲我的OneDrive帳戶提供我的登錄憑證。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.Live; 
using System.IO; 
using System.Threading.Tasks; 



namespace OneDriveUpdater 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      LiveConnectClient liveClient = new LiveConnectClient(this.session); 

      FileStream fs = new StreamReader(@"c:\status.txt"); 

      var result = await liveConnectClient.UploadAsync("", "STATUS", fs, OverwriteOption.Overwrite); 


     }  

    } 
} 
+0

什麼是'this.session'?從[文檔](http://msdn.microsoft.com/en-us/library/microsoft.live.liveconnectclient.aspx)看起來應該有你的認證信息。 – 2014-09-24 15:00:06

+0

我無法確定在創建this.session的文檔中的哪個位置。我發現的所有例子都沒有創建它。 – ManInMoon 2014-09-24 15:07:04

+0

因此,您的代碼不會編譯,因爲您指的是您尚未創建的值?如果你已經解釋過,當你提出這個問題時,它會很有用...... – 2014-09-24 15:30:17

回答

1

該文檔有點稀疏,但是如果你看,信息就在那裏。我沒有測試過 - 它完全基於文檔,但看起來大致正確。

創建LiveAuthClient實例,並調用無論是LoginInitialize身份驗證方法(似乎Initialize會默默地進行身份驗證,但如果需要Login將顯示一個對話框)。

無論選擇哪種方法,任務完成時的返回值都是LiveLoginResult實例。它具有連接狀態的屬性,以及LiveConnectSession類型的.Session屬性。

.Session值是你需要傳遞給LiveConnectClient構造函數。

+0

我希望有一個簡單的例子 - 我真的不知道要使用哪個初始化以及它期望的參數。這些文檔似乎旨在比我更有經驗的人。其實,我不能稱爲eitehr初始化或登錄方法,因爲VS不會智能化他們 - 這表明我正在做其他事情 – ManInMoon 2014-09-24 15:42:00

0

試試這個代碼,第一次登錄的用戶:

using Microsoft.Live; 
private LiveConnectSession _session = null; 

public async Task AuthenticateUserThroughLive() 
{ 
    try 
    { 
     LiveAuthClient LCAuth = new LiveAuthClient("<Redirect Domain>"); 

     LiveLoginResult loginResult = await LCAuth.LoginAsync(new string[] { "wl.signin", "wl.basic", "wl.skydrive", "wl.skydrive_update" }); 
     if (loginResult.Status == LiveConnectSessionStatus.Connected) 
     { 
      this.LiveSession = loginResult.Session; 
     } 
    } 
    catch (LiveAuthException) 
    { 
    // Handle exceptions. 
    } 
} 

替換從你如何設置你的應用程序中實時連接管理網站重定向域,並通過只在需要的作用域在Login()方法。 Session屬性包含您與Live Connect交談所需的身份驗證令牌,授予用戶允許您通過Scopes訪問OneDrive。 PS:我剛剛寫了一篇關於相關主題的文章。如果相關,請查看http://developer.telerik.com/featured/live-connect-integration-mobile-apps/

謝謝!

相關問題