DocSpace-client/thirdparty/onedrive-sdk-csharp-master/README.md
2020-07-10 18:37:02 +03:00

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.