All Projects â†’ adamkrogh â†’ Goodreads Dotnet

adamkrogh / Goodreads Dotnet

Licence: mit
📚 Goodreads .NET API Client Library

Projects that are alternatives of or similar to Goodreads Dotnet

node-imaginary
Minimalist node.js command-line & programmatic API client for imaginary
Stars: ✭ 94 (+108.89%)
Mutual labels:  client-library
Phrets
PHP client library for interacting with a RETS server to pull real estate listings, photos and other data made available from an MLS system
Stars: ✭ 416 (+824.44%)
Mutual labels:  client-library
Standardfile
Yet Another Standardfile (standardnotes server) Implementation written in Golang
Stars: ✭ 34 (-24.44%)
Mutual labels:  client-library
Google Maps Services Python
Python client library for Google Maps API Web Services
Stars: ✭ 3,443 (+7551.11%)
Mutual labels:  client-library
Rosrust
Pure Rust implementation of a ROS client library
Stars: ✭ 355 (+688.89%)
Mutual labels:  client-library
Google Maps Services Go
Go client library for Google Maps API Web Services
Stars: ✭ 492 (+993.33%)
Mutual labels:  client-library
ably-python
Python REST client library SDK for Ably realtime messaging service
Stars: ✭ 20 (-55.56%)
Mutual labels:  client-library
Ldaptive
A simple, extensible Java API for interacting with LDAP servers
Stars: ✭ 43 (-4.44%)
Mutual labels:  client-library
Pynsq
The official Python client library for NSQ
Stars: ✭ 393 (+773.33%)
Mutual labels:  client-library
Ably Go
Go client library SDK for Ably realtime messaging service
Stars: ✭ 29 (-35.56%)
Mutual labels:  client-library
Mediasoup Client
mediasoup client side JavaScript library
Stars: ✭ 320 (+611.11%)
Mutual labels:  client-library
Agollo
🚀Go client for ctrip/apollo (https://github.com/ctripcorp/apollo)
Stars: ✭ 348 (+673.33%)
Mutual labels:  client-library
Github Api
Java API for GitHub
Stars: ✭ 743 (+1551.11%)
Mutual labels:  client-library
sdk-powershell-api-v2
Windows PowerShell SDK for Box API v2
Stars: ✭ 21 (-53.33%)
Mutual labels:  client-library
Localstack Dotnet Client
A lightweight .NET client for LocalStack
Stars: ✭ 40 (-11.11%)
Mutual labels:  client-library
youtube-deno
A Deno client library of the YouTube Data API.
Stars: ✭ 30 (-33.33%)
Mutual labels:  client-library
Cs16 Client
Counter-Strike 1.6 rewritten client.dll. Without VGUI, ParticleMan and ecology friendy.
Stars: ✭ 449 (+897.78%)
Mutual labels:  client-library
Unleash Client Python
Unleash client for Python 💡💡💡
Stars: ✭ 44 (-2.22%)
Mutual labels:  client-library
Gomusicbrainz
a Go (Golang) MusicBrainz WS2 client library - work in progress
Stars: ✭ 42 (-6.67%)
Mutual labels:  client-library
M2x Python
AT&T M2X Python Library
Stars: ✭ 25 (-44.44%)
Mutual labels:  client-library

Goodreads .NET API Client Library

AppVeyor NuGet

A Goodreads .NET API Client Library.

Getting started

Prerequisites

A Goodreads developer key. This can be obtained from https://www.goodreads.com/api/keys. You must register your application in Goodreads as well. Also you could find more information how obtain your key and register app here.

Installation

Package manager

Install-Package Goodreads

.NET CLI

dotnet add package Goodreads

Docs

There is a full list of supported methods with examples in our wiki page. Also please have a look at Demo application.

Usage Examples

Use an unauthorized Goodreads client

// Define your Goodreads key and secret.
const string apiKey = "<Your API Key>";
const string apiSecret = "<Your API Secret>"; 

// Create an unauthorized Goodreads client.
var client = GoodreadsClient.Create(apiKey, apiSecret);

// Now you are able to call some Goodreads endpoints that don't need the OAuth credentials. For example:
// Get a book by specified id.
var book = await client.Books.GetByBookId(bookId: 15979976); 

// Get a list of groups by search keyword.
var groups = await client.Groups.GetGroups(search: "Arts"); 

User Authorization (OAuth)

// Define your Goodreads key and secret.
const string apiKey = "<Your API Key>";
const string apiSecret = "<Your API Secret>"; 

// Create an unauthorized Goodreads client.
var client = GoodreadsClient.Create(apiKey, apiSecret);

// Ask a Goodreads request token and build an authorization url.
const string callbackUrl = "<callback_url>";
var requestToken = await client.AskCredentials(callbackUrl);

// Then app has to redirect a user to 'requestToken.AuthorizeUrl' and user must grant access to your application.

// Get a user's OAuth access token and secret after they have granted access.
var accessToken = await client.GetAccessToken(requestToken);

// Create an authorized Goodreads client.
var authClient = GoodreadsClient.CreateAuth(apiKey, apiSecret, accessToken.Token, accessToken.Secret);

// Now you are able to call all of the Goodreads endpoints. For example:
// Add a user to friends list
var book = await client.Friends.AddFriend(userId: 1); 

// Add a book to a 'must-read' shelf.
await client.Shelves.AddBookToShelf(shelf: "must-read", bookId: 15979976); 

Goodreads API Coverage

Library covers all API Goodreads methods except below:

Need some additional credentials

  • list.book — Get the listopia lists for a given book.
  • work.editions — See all editions by work.

Bugs

Unfortunately, some Goodreads API methods have bugs.

  • friend.confirm_recommendation — Confirm or decline a friend recommendation.
  • owned_books.update — Update an owned book.
  • review.destroy — Delete a book review.
  • rating.create — Like a resource.
  • rating.destroy — Unlike a resource.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].