Как предоставить учетные данные для обновления моего файла 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);


        }      

    }
}

2 ответа

Документация немного скудная, но информация там, если вы посмотрите. Я не проверял это - он основан исключительно на документах, но выглядит примерно правильно.

Создать LiveAuthClient экземпляр, и вызвать либо Login или же Initialize способ аутентификации (кажется, что Initialize будет аутентифицировать молча, но Login отобразит диалог при необходимости).

Какой бы метод вы ни выбрали, возвращаемое значение при завершении задачи является LiveLoginResult пример. Это имеет свойство для статуса подключения и .Session свойство типа LiveConnectSession,

это .Session значение - это то, что вам нужно передать LiveConnectClient конструктор.

Попробуйте этот код для первого входа пользователя в систему:

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.
  }
}

Замените домен перенаправления с того, как вы настроили свое приложение на сайте управления Live Connect, и передайте только необходимые области в методе Login(). Свойство Session содержит токен аутентификации, необходимый для общения с Live Connect, при условии, что пользователь разрешил вам доступ к OneDrive через Scopes.

PS: я только что написал статью на смежные темы. Пожалуйста, проверьте http://developer.telerik.com/featured/live-connect-integration-mobile-apps/ если уместно.

Спасибо!

Другие вопросы по тегам