1

私は何時間も試してきましたが、うまくいきません。次のコードを使用します(VB)

Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim credential As UserCredential = Await GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets With {.ClientId = "my key", .ClientSecret = "my secret"}, New String() {BooksService.Scope.Books}, "user", CancellationToken.None, New FileDataStore("Books.ListMyLibrary"))
        Dim service As New BooksService(New BaseClientService.Initializer With {.HttpClientInitializer = credential, .ApplicationName = "LibraryX"})

        'Dim bookselve As Bookshelves = Await service.Mylibrary.Bookshelves.List.ExecuteAsync
        Dim mm = service.Volumes.Get("9780330441230")

    End Sub

本に関する情報が得られない (The Camel Club、David Baldacci)

誰か助けてくれませんか?

こんにちは、スティーブン

20131106

私はいくつかの変更を加えました:

Private Async Sub Form1_Load(sender As Object, e As EventArgs) ハンドル MyBase.Load

    Dim credential As UserCredential = Await GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets With {.ClientId = "my key", .ClientSecret = "my secret"},
                                                                                         New String() {BooksService.Scope.Books}, "user", CancellationToken.None, New FileDataStore("Books.ListMyLibrary"))
    Dim service As New BooksService(New BaseClientService.Initializer With {.HttpClientInitializer = credential, .ApplicationName = "LibraryX"})

    'Dim bookselve As Bookshelves = Await service.Mylibrary.Bookshelves.List.ExecuteAsync
    Try
        rslt = Await service.Volumes.Get("9780330441230").ExecuteAsync
        Dim y As Integer = 0
    Catch gaex As Google.GoogleApiException
        ErrorMessageTextBox.Text = gaex.Message
    Catch ex As AggregateException
        ErrorMessageTextBox.Text = ex.Message
    End Try


End Sub

しかし、リクエストの結果は次のとおりです。

enter code hereGoogle.Apis.Requests.RequestError ボリューム ID が見つかりませんでした。[404] エラー [ メッセージ [ボリューム ID が見つかりませんでした。] 場所 [ - ] 理由 [notFound] ドメイン [グローバル] ]

Google から書籍情報を取得するために必要な VolumeId は何ですか??

4

2 に答える 2

0

Google API Explorer を使用して、books.volumes.list メソッドで次のクエリを実行しました。q=intitle:"The Camel Club";inauthor:David Baldacci

次のリンクで見つけることができますhttps://developers.google.com/apis-explorer/#p/books/v1/books.volumes.list?q=intitle%253A%2522The+Camel+Club%2522%253Binauthor %253A+デビッド+バルダッチ&_h=13& .

私はこの API の専門家ではありませんが、必要な情報はすべてhttps://developers.google.com/books/docs/v1/using#PerformingSearchにあります。クエリを最適化できると確信していますが、始めるのに適した場所です。

更新 (.NET コードの追加):
Google API エクスプローラーを使用して利用できるすべてのアクションは、次のように .NET クライアント ライブラリを使用して利用することもできます。

var service = new BooksService(new BaseClientService.Initializer()
    {
        // HttpClientInitializer = credential,
        ApplicationName = "Books API Sample",
    });
var volumes = await service.Volumes.List(
      "intitle:\"The Camel Club\";inauthor: David Baldacci").ExecuteAsync();
foreach (var item in volumes.Items)
{
    Console.WriteLine(item.VolumeInfo.Title);
}

この場合、ユーザー固有のデータを照会しないため、UserCredential は必要ないことに注意してください。Mylibrary にクエリを実行する場合は、UserCredential と認証済みリクエストを使用する必要があります。

于 2013-11-07T13:56:26.283 に答える