117 lines
4.9 KiB
Markdown
117 lines
4.9 KiB
Markdown
|
# OneDrive SDK for CSharp
|
||
|
|
||
|
[![Build status](https://ci.appveyor.com/api/projects/status/fs9ddrmdev37v012/branch/master?svg=true)](https://ci.appveyor.com/project/OneDrive/onedrive-sdk-csharp/branch/master)
|
||
|
|
||
|
Integrate the [OneDrive API](https://dev.onedrive.com/README.htm) into your C#
|
||
|
project!
|
||
|
|
||
|
The OneDrive SDK is built as a Portable Class Library and targets the following
|
||
|
frameworks:
|
||
|
|
||
|
* .NET 4.5.1
|
||
|
* .NET for Windows Store apps
|
||
|
* Windows Phone 8.1 and higher
|
||
|
|
||
|
Azure Active Directory authentication is available for:
|
||
|
|
||
|
* Windows Forms apps
|
||
|
* UWP apps
|
||
|
* Windows 8.1 apps
|
||
|
|
||
|
## Installation via Nuget
|
||
|
|
||
|
To install the OneDrive SDK via NuGet
|
||
|
|
||
|
* Search for `Microsoft.OneDriveSDK` in the NuGet Library, or
|
||
|
* Type `Install-Package Microsoft.OneDriveSDK` into the Package Manager Console.
|
||
|
|
||
|
## Getting started
|
||
|
|
||
|
### 1. Register your application
|
||
|
|
||
|
Register your application for OneDrive by following [these](https://dev.onedrive.com/app-registration.htm) steps.
|
||
|
|
||
|
### 2. Setting your application Id and scopes
|
||
|
|
||
|
Your app must requests permissions in order to access a user's OneDrive. To do this, specify your app ID and scopes, or permission level.
|
||
|
For more information, see [Authentication scopes](https://dev.onedrive.com/auth/msa_oauth.htm#authentication-scopes).
|
||
|
|
||
|
### 3. Getting an authenticated OneDriveClient object
|
||
|
|
||
|
You must get a **OneDriveClient** object in order for your app to make requests to the service, but first you must have an instance of an object that implements `IAuthenticationProvider` in Microsoft.Graph.Core.
|
||
|
An example of such an imlementation can be found [MSA Auth Adapter repository](https://github.com/OneDrive/onedrive-sdk-dotnet-msa-auth-adapter). You should create the `IAuthenticationProvider`, authenticate
|
||
|
using `AuthenticateUserAsync()`, and then create a `OneDriveClient` using the auth provider as a constructor argument. You must also provide the ClientId of your app, the return URL you have specified for your app,
|
||
|
and the base URL for the API. Below is a sample of that pattern for authentication on the OneDrive service.
|
||
|
|
||
|
```csharp
|
||
|
var msaAuthProvider = new myAuthProvider(
|
||
|
myClientId,
|
||
|
"https://login.live.com/oauth20_desktop.srf",
|
||
|
{ "onedrive.readonly", "wl.signin" });
|
||
|
await msaAuthProvider.AuthenticateUserAsync();
|
||
|
var oneDriveClient = new OneDriveClient("https://api.onedrive.com/v1.0", msaAuthProvider);
|
||
|
```
|
||
|
|
||
|
After that, you will be able to use the `oneDriveClient` object to make calls to the service. For more information, see [Authenticate your C# app for OneDrive](docs/auth.md).
|
||
|
|
||
|
### 4. Making requests to the service
|
||
|
|
||
|
Once you have a OneDriveClient that is authenticated you can begin to make calls against the service. The requests against the service look like OneDrive's [REST API](https://dev.onedrive.com/README.htm).
|
||
|
|
||
|
To retrieve a user's drive:
|
||
|
|
||
|
```csharp
|
||
|
var drive = await oneDriveClient
|
||
|
.Drive
|
||
|
.Request()
|
||
|
.GetAsync();
|
||
|
```
|
||
|
|
||
|
`GetAsync` will return a `Drive` object on success and throw a `Microsoft.Graph.ServiceException` on error.
|
||
|
|
||
|
To get the current user's root folder of their drive:
|
||
|
|
||
|
```csharp
|
||
|
var rootItem = await oneDriveClient
|
||
|
.Drive
|
||
|
.Root
|
||
|
.Request()
|
||
|
.GetAsync();
|
||
|
```
|
||
|
|
||
|
`GetAsync` will return an `Item` object on success and throw a `Microsoft.Graph.ServiceException` on error.
|
||
|
|
||
|
For a general overview of how the SDK is designed, see [overview](docs/overview.md).
|
||
|
|
||
|
The following sample applications are also available:
|
||
|
* [OneDrive API Browser](https://github.com/OneDrive/onedrive-sample-apibrowser-dotnet) - Windows Forms app
|
||
|
* [OneDrive Photo Browser](https://github.com/OneDrive/onedrive-sample-photobrowser-uwp) - Windows Universal app
|
||
|
* [OneDrive Webhooks](https://github.com/OneDrive/onedrive-webhooks-aspnet) - ASP.NET MVC app
|
||
|
|
||
|
To run the OneDrivePhotoBrowser sample app your machine will need to be configured for [UWP app development](https://msdn.microsoft.com/en-us/library/windows/apps/dn609832.aspx) and the project must be associated with the Windows Store.
|
||
|
|
||
|
## Documentation and resources
|
||
|
|
||
|
* [Overview](docs/overview.md)
|
||
|
* [Auth](docs/auth.md)
|
||
|
* [Items](docs/items.md)
|
||
|
* [Chunked uploads](docs/chunked-uploads.md)
|
||
|
* [Collections](docs/collections.md)
|
||
|
* [Errors](docs/errors.md)
|
||
|
* [OneDrive API](http://dev.onedrive.com)
|
||
|
|
||
|
## Issues
|
||
|
|
||
|
To view or log issues, see [issues](https://github.com/OneDrive/onedrive-sdk-csharp/issues).
|
||
|
|
||
|
## Other resources
|
||
|
|
||
|
* NuGet Package: [https://www.nuget.org/packages/Microsoft.OneDriveSDK](https://www.nuget.org/packages/Microsoft.OneDriveSDK)
|
||
|
|
||
|
|
||
|
## License
|
||
|
|
||
|
[License](LICENSE.txt)
|
||
|
|
||
|
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|