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