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)
- Host: GitHub
- URL: https://github.com/mr1penguin/deviantartapi
- Owner: Mr1Penguin
- License: mit
- Created: 2016-07-05T09:09:21.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T23:48:09.000Z (over 2 years ago)
- Last Synced: 2025-04-13T03:03:25.916Z (23 days ago)
- Topics: api, deviantart, nuget, rest, uwp, winrt
- Language: C#
- Homepage:
- Size: 319 KB
- Stars: 6
- Watchers: 1
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
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)
[](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 pageresult = await Feed.GetNextPageAsync();
//start from beginning
Feed.Cursor = "";result = await Feed.GetNextPageAsync();
```