An open API service indexing awesome lists of open source software.

https://github.com/mr1penguin/deviantartapi

DeviantartApi Library in C# (netstandard 2)
https://github.com/mr1penguin/deviantartapi

api deviantart nuget rest uwp winrt

Last synced: 13 days ago
JSON representation

DeviantartApi Library in C# (netstandard 2)

Awesome Lists containing this project

README

        

# DeviantartApi Library in C# (netstandard 2)

Library for using [Deviantart API](https://www.deviantart.com/developers/http/v1/20160316) from .NET.

### Acquiring

#### nuget (outdated)
[![NuGet](https://img.shields.io/badge/nuget.Core-2.0.2-brightgreen.svg?maxAge=2592000?style=flat-square)](https://www.nuget.org/packages/DeviantartApi/)

#### git
prefered for now

### Usage

If you use platform with implemented login process:

```cs

void RefreshTokenUpdated(string newRefreshToken)
{
if(SavedToken != newRefreshToken)
SaveToken(newRefreshToken, DateTime.Now.AddMonths(3));
}
...
// There is no valid RefreshToken
var result = await DeviantartApiLogin.Platform.Login.SignInAsync(ClientId, Secret, CallbackUrl, RefreshTokenUpdated,
new[]
{
DeviantartApi.Login.Scope.Browse,
DeviantartApi.Login.Scope.User,
DeviantartApi.Login.Scope.Feed
}));
if(result.IsLoginError)
{
ShowError(result.LoginErrorText);
return;
}

SaveToken(result.RefreshToken, DateTime.Now.AddMonths(3));
return;
...
// You have valid RefreshToken
DeviantartApiLogin.Platform.Login.AttachLogin(); //So TokenChecker know what must be called if refreshtoken invalid
var result = await DeviantartApi.Login.SetAccessTokenByRefreshAsync(ClientId, Secret, CallbackUrl, RefreshToken, RefreshTokenUpdated, new[]
{
DeviantartApi.Login.Scope.Browse,
DeviantartApi.Login.Scope.User,
DeviantartApi.Login.Scope.Feed
});
if(result.IsLoginError)
{
ShowError(result.LoginErrorText);
return;
}
SaveToken(result.RefreshToken, DateTime.Now.AddMonths(3));
return;

```

Otherwise:

```cs

void RefreshTokenUpdated(string newRefreshToken)
{
if(SavedToken != newRefreshToken)
SaveToken(newRefreshToken, DateTime.Now.AddMonths(3));
}
...
// There is no valid RefreshToken
DeviantartApi.Login.CustomSignInAsync = MySignInAsync;
var result = await DeviantartApi.Login.SignInAsync(ClientId, Secret, CallbackUrl, RefreshTokenUpdated,
new[]
{
DeviantartApi.Login.Scope.Browse,
DeviantartApi.Login.Scope.User,
DeviantartApi.Login.Scope.Feed
}));
if(result.IsLoginError)
{
ShowError(result.LoginErrorText);
return;
}

SaveToken(result.RefreshToken, DateTime.Now.AddMonths(3));
return;
...
// You have valid RefreshToken
DeviantartApi.Login.CustomSignInAsync = MySignInAsync; //So TokenChecker know what must be called if refreshtoken invalid
var result = await DeviantartApi.Login.SetAccessTokenByRefreshAsync(ClientId, Secret, CallbackUrl, RefreshToken, RefreshTokenUpdated, new[]
{
DeviantartApi.Login.Scope.Browse,
DeviantartApi.Login.Scope.User,
DeviantartApi.Login.Scope.Feed
});
if(result.IsLoginError)
{
ShowError(result.LoginErrorText);
return;
}
SaveToken(result.RefreshToken, DateTime.Now.AddMonths(3));
return;

```

Requests example

```cs

var result = await new DeviantartApi.Requests.User.WhoAmIRequest().ExecuteAsync();
if (result.IsError)
{
ShowError(result.ErrorText);
return;
}
UserName = result.Object.Username;
UserAvatarUri = new Uri(result.Object.UserIcon);

//or
var Feed = new HomeRequest();
Feed.LoadMature = true;
var result = await Feed.GetNextPageAsync();
if(result.IsError)
{
ShowError(result.ErrorText);
return;
}
//use data
...
//get next page

result = await Feed.GetNextPageAsync();

//start from beginning
Feed.Cursor = "";

result = await Feed.GetNextPageAsync();
```