Goodreads Developers discussion

105 views
bugs > book.show API call redirecting to mobile web on mobile device

Comments Showing 1-12 of 12 (12 new)    post a comment »
dateUp arrow    newest »

message 1: by Adam (new)

Adam (jademason) | 66 comments My calls to the book.show (http://www.goodreads.com/book/show/[[... )

method from a mobile device are getting redirected to the mobile page for the book rather than returning the expected xml. Requests to the same URL from a desktop machine receive XML as expected.


message 2: by Michael (new)

Michael (surfermikel) | 10 comments The URL I use is slightly different:

http://www.goodreads.com/book/show/[[....xml?key=[[APP_KEY]]&page=[[PAGE_NUM]]


message 3: by Adam (new)

Adam (jademason) | 66 comments Looks like it is fixed now.


message 4: by Adam (new)

Adam (jademason) | 66 comments Following up: this is still an issue, but only when the request is signed. The book.show request does not require being signed, so if I don't sign it I get results back. I was signing this request in the hope that, if it were signed, the returned reviews would include reviews that are private to the signed user.


message 5: by Michael (new)

Michael Economy (michaeleconomy) We have no private reviews.


message 6: by Adam (new)

Adam (jademason) | 66 comments I see, my understanding of how privacy works may be a littled skewed then.

Let's say we have three users: Aaron, Beatrice, and Clyde.

Aaron is friends with Beatrice and Clyde. Aaron has set his profile to public.
Beatrice is friends with Aaron, but not Clyde. Beatrice has set her profile to private.
Clyde is friends with Aaron, but not Beatrice. Clyde has a public profile.

When Aaron signs in, he can see the books that both Beatrice and Clyde have put on their shelves, as well as reviews for those books.
When Beatrice signs in, she can see the books that both Aaron and Clyde have put on their shelves, as well as reviews for those books.
When Clyde signs in, he can see the books that Aaron has put on his shelves, as well as the reviews for those books. He is not able to view the books on Beatrice's shelves (they are not friends) nor is he able to see the reviews she has written for those books.

That was my assumption. Based on your comment, I take it that all reviews, regardless of your profile settings, are public. So in that case, while Clyde could not request the list of books on Beatrice's shelves, if he were to view book reviews for a book that Beatrice has reviewed, he might see her review.


message 7: by Michael (new)

Michael Economy (michaeleconomy) Oh, I forgot one thing, we have a checkbox in settings for "allow partners of Goodreads to display my reviews". This should apply to the non-oauth request, but not an oauth request.



"Based on your comment, I take it that all reviews, regardless of your profile settings, are public." other than that setting, this is correct.


We have private profiles, but not private reviews. Sorry this is confusing.


message 8: by Adam (new)

Adam (jademason) | 66 comments No problem, and thanks for the clarification! So when I make a request using my application key, but not signing the request, the user must have the 'allow partners of Goodreads to display my reviews' option checked for the reviews to appear. If I do sign the request, then all reviews will appear.

Based on that, I do think there is a bug on the book.show request when signed from a mobile device. When I leave my book.show request unsigned, I get back xml. When I sign the book.show request I receive the HTML for the mobile version of that book's web page.


message 9: by Michael (new)

Michael Economy (michaeleconomy) :(


I'll look into that.


message 10: by Michael (new)

Michael Economy (michaeleconomy) One question, do you have ".xml" or "format=xml" in your query string?

If not, that may fix it.


message 11: by Adam (new)

Adam (jademason) | 66 comments Good call! I did not have either of those on my request. I added them in and the signed request began to work.

"format=xml" -- is this an undocumented option on all requests? If so, it would be fairly simple for me to add it to all of my calls.


message 12: by Michael (new)

Michael Economy (michaeleconomy) So our routing is "supposed" to always recongnise like "book/show/5.xml" which should set the format parameter (internally) to "xml". But doing book/show/5?format=xml will always work due to the way routing works.


back to top