7

我想在我的Ruby on Rails 3應用程序中開始使用Google圖書搜索的Google Data API,但我甚至不知道如何開始。我需要什麼寶石?爲了做一些簡單的事情,我需要做些什麼,比如搜索Foobar標題的書籍?Ruby on Rails 3和Google圖書搜索

回答

12

跟進棄用的問題:我剛剛發佈GoogleBooks,一個Ruby包裝,使用戶可以查詢書籍完全按照所述的方式。

它已更新爲與當前Google API掛鉤,因此它不受最近棄用Google圖書搜索API的影響。

+0

不錯的工作!我一定會在將來使用它。 – Andrew 2011-12-07 22:16:57

+0

這是一個了不起的寶石。非常感謝。 – hankang 2012-06-02 04:58:49

+0

像魅力\ o / – 2012-10-26 19:19:53

0

如果你想使用api,我想你將不得不使用jruby和他們的java api。沒有紅寶石api存在的書籍搜索,根據這個:http://code.google.com/apis/books/docs/gdata/code.html

連接谷歌,嘗試使用gdata寶石。 http://code.google.com/apis/gdata/articles/gdata_on_rails.html#SetupRails

+0

對不起,我無法使用Java。我需要一個Ruby解決方案。 – Andrew 2010-09-10 03:53:59

+0

另外,我想我可以使用gdata gem,但我無法弄清楚如何讓它工作。另外,更通用的解決方案也可以。我只需要一個代碼示例讓我開始。 – Andrew 2010-09-11 17:12:59

+0

根據凱文的解決方案,jruby的獨家需求是不存在的。考慮到你的代表,我會避免一個downvote。 – 2011-10-09 20:34:15

6

如果您想使用谷歌圖書檢索圖書信息,您可以使用自己的數據API:http://code.google.com/apis/books/docs/gdata/developers_guide_protocol.html

發出請求的URL像http://books.google.com/books/feeds/volumes?q=isbn:9780974514055將返回XML的書的信息。你可以使用Nokogiri寶石來解析結果(http://nokogiri.org/)。

需要注意的一件事是,要獲取書籍的完整描述,您需要獲取條目而不僅僅是條目結果。

這裏有一個如何你可以從谷歌得到一本書的信息很短的例子:

require 'open-uri' 
require 'nokogiri' 

class Book 
    attr_accessor :title, :description 
    def self.from_google(title) 
    book = self.new 
    entry = Nokogiri::XML(open "http://books.google.com/books/feeds/volumes?q=#{title}").css("entry id").first 
    xml = Nokogiri::XML(open entry.text) if entry 
    return book unless xml 

    book.title  = xml.css("entry dc|title").first.text  unless xml.css("entry dc|title").empty? 
    book.description = xml.css("entry dc|description").first.text unless xml.css("entry dc|description").empty? 
    book 
    end 
end 

b = Book.from_google("Ruby") 
p b