Искать детали книгу с Google Books API в PHP


Я использую API Google books) , чтобы получить подробную информацию книгу:

, чтобы получить подробную информацию книгу, искать по имени, я использую следующий пример предоставляемых ими, в этом случае файл simple-query.php и в папке examples.

что происходит, что я могу только сделать поиск по автору книг при вызове этой функции:

$results = $service->volumes->listVolumes('Catarina Coelho', $optParams);

Как я могу сделать поиск по названию книги? вижу каких-либо достопримечательностей, поиска по названию книги.

Как я не мог сделать так, сверху, нашел пример в интернете, но поиск производится по URL -

https://www.googleapis.com/books/v1/volumes?q=Memoria+historia+da+provincia+de+Santa+Catharina

, Если использовать это решение через URL-адрес, как я могу получить результат по коду и храниться в переменной/массива?

Author: gmsantos, 2015-01-12

3 answers

Вы Можете прочитать данные JSON, и таким образом манипулировать так, что тебе будет угодно:

<?php
$page = file_get_contents("https://www.googleapis.com/books/v1/volumes?q=Memoria+historia+da+provincia+de+Santa+Catharina");

$data = json_decode($page, true);

echo "Title = " . $data['items'][0]['volumeInfo']['title'];
echo "<br/>Authors = " . @implode(",", $data['items'][0]['volumeInfo']['authors']);    
?>

Здесь этот пример, чтобы идти, искать Title и Authors и в книге.

 2
Author: CesarMiguel, 2015-01-12 11:11:03

В разделе Performing Search, говорит о том, что можно указать название книги (или его часть) с помощью параметра intitle. Например:

http https://www.googleapis.com/books/v1/volumes?q=intitle:Cem+Anos+de+Solidao

Ответ:

{
 "kind": "books#volumes",
 "totalItems": 17,
 "items": [
  {
   "kind": "books#volume",
   "id": "iPxztgAACAAJ",
   "etag": "2jx8ktgU3G8",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/iPxztgAACAAJ",
   "volumeInfo": {
    "title": "Cem anos de solidão",
    "authors": [
     "Gabriel García Márquez"
    ],
    "publishedDate": "1973",
    "industryIdentifiers": [
     {
      "type": "OTHER",
      "identifier": "OCLC:6522501"
     }
    ],
    "readingModes": {
     "text": false,
     "image": false
    },
    "pageCount": 364,
    "printType": "BOOK",
    "contentVersion": "preview-1.0.0",
    "language": "en",
    "previewLink": "http://books.google.com.br/books?id=iPxztgAACAAJ&dq=intitle:Cem+Anos+de+Solidao&hl=&cd=1&source=gbs_api",
    "infoLink": "http://books.google.com.br/books?id=iPxztgAACAAJ&dq=intitle:Cem+Anos+de+Solidao&hl=&source=gbs_api",
    "canonicalVolumeLink": "http://books.google.com.br/books/about/Cem_anos_de_solid%C3%A3o.html?hl=&id=iPxztgAACAAJ"
   },
   "saleInfo": {
    "country": "BR",
    "saleability": "NOT_FOR_SALE",
    "isEbook": false
   },
   "accessInfo": {
    "country": "BR",
    "viewability": "NO_PAGES",
    "embeddable": false,
    "publicDomain": false,
    "textToSpeechPermission": "ALLOWED",
    "epub": {
     "isAvailable": false
    },
    "pdf": {
     "isAvailable": false
    },
    "webReaderLink": "http://books.google.com.br/books/reader?id=iPxztgAACAAJ&hl=&printsec=frontcover&output=reader&source=gbs_api",
    "accessViewStatus": "NONE",
    "quoteSharingAllowed": false
   }
  }
 ]
}
 1
Author: Rodrigo Rigotti, 2015-01-12 11:29:34

Попробуйте использовать этот код:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    'Step 1:- google API url responsible for returning the book detail in JASON format
    Const GOOGLEAPIURL As String = "https://www.googleapis.com/books/v1/volumes?q=&#8221;"

    If txtISBN.Text <> String.Empty Then
        Dim requestURL As String

        'Step 2:- Reformed the URL to target particular ISBN number
        requestURL = GOOGLEAPIURL + txtISBN.Text() + "+isbn"

        'Step 3: created Http webrequest for URL
        Dim wr As HttpWebRequest = HttpWebRequest.Create(requestURL)
        'Step4 : get the response of web request in http web response object
        Dim resp As HttpWebResponse = wr.GetResponse()

        'Step 5: passes the response stream in stream reader
        Dim sreader As New StreamReader(resp.GetResponseStream())
        'Step 6: parsing the reader(which is in Jason format) using JASON.NET

        Dim rss = JObject.Parse(sreader.ReadToEnd())

        'Step 7: if object find the fetch the detail

        If rss Is Nothing = False AndAlso rss.Count > 0 Then
            lblBookName.Text = rss.Item("items")(0).Item("volumeInfo").Item("title").ToString()
            lblAuthor.Text = rss.Item("items")(0).Item("volumeInfo").Item("authors").ToString().Replace("[", "").Replace("]", "").ToString()
            lblPublisher.Text = rss.Item("items")(0).Item("volumeInfo").Item("publisher").ToString()
        Else
            lblMessage.Text = "Sorry ISBN Number not found, Please try different number."
        End If
    Else
        lblMessage.Text = "Please enter the ISBN number"
    End If
End Sub
 0
Author: Everton Souza Santos, 2015-11-21 19:45:43