John Munro John’s Comments (group member since Mar 03, 2014)


John’s comments from the Goodreads Developers group.

Showing 1-6 of 6

Jul 22, 2014 05:19PM

8095 I'd like to get the genre of a book, but neither review/list or book/show seem to have a genre field.

The closest thing I can find is popular_shelves in book/show, but that's not just a list of genres so I'd have to somehow filter the non-genre lists out...
Apr 04, 2014 05:38AM

8095 <book>
<id type="integer">13019146</id>
<isbn nil="true"/>
<isbn13 nil="true"/>
<text_reviews_count type="integer">1</text_reviews_count>
<title>Velvet Dogma</title>
<image_url>https://d202m5krfqbpi5.cloudfront.net...
<small_image_url>https://d202m5krfqbpi5.cloudfront.net...
<link>https://www.goodreads.com/book/show/1...
<num_pages/>
<format/>
<edition_information/>
<publisher/>
<publication_day/>
<publication_year/>
<publication_month/>
<average_rating>3.15</average_rating>
<ratings_count>85</ratings_count>
<description/>
<authors>
<author>
<id>992207</id>
<name>Weston Ochse</name>
<image_url>
<![CDATA[https://d202m5krfqbpi5.cloudfront.net...
</image_url>
<small_image_url>
<![CDATA[https://d202m5krfqbpi5.cloudfront.net...
</small_image_url>
<link>
<![CDATA[https://www.goodreads.com/author/show...
</link>
<average_rating>3.91</average_rating>
<ratings_count>2238</ratings_count>
<text_reviews_count>274</text_reviews_count>
</author>
</authors>
<published/>
</book>
Apr 02, 2014 06:37PM

8095 I'm calling review/list to get a list of the user's read books.

I'd like to get more information about each book using Amazon's API, but in order to do that I need the ASIN for each book.

The XML I get from review/list has an internal ID and an ISBN but eBooks don't seem to have ISBNs.

Do I need to call book/show for each book in order to get the ASIN? Is there any way I can batch together requests so I can get the ASINs for all the books at once instead of sending requests one per second?
Mar 25, 2014 01:34PM

8095 Yeah, maybe I read more books than average but when I tested it with my account it was page 1/3 even with per_page set to 200 :)
Mar 24, 2014 05:05PM

8095 The app will give recommendations based on the user's reading history and ratings.

I wouldn't think it would have a lot of traffic (especially in the beginning) but the only way to be sure that I'm not exceeding one request per second is to write code to wait between requests. I just wanted to check if I needed to add the complication to rate limiting to the oauth flow or not.

If I don't need to insert sleeps into oauth then this would be the flow for a new user:

* I get a response token using my API key and create an authorize URL.
* The user goes to the authorize URL, logs in and gets redirected to my callback URL.
* I get the verifier from the callback URL and use it to get an access token.
* I call auth_user to get the user ID (and wait a second).
* I call review/list to get a list of the user's read books (and wait a second).
* If the attributes on the reviews tag indicates that there are more results then I call review/list again (and wait a second). Repeat as necessary.
* I generate some recommendations based on the user's read books and show them to the user.
Mar 19, 2014 08:32PM

8095 The terms of service say to limit requests to at most one a second - does this apply to oauth calls like http://www.goodreads.com/oauth/reques... and http://www.goodreads.com/oauth/access...?