Dokumentation
Entwickler-HubAPI-StatusUnterstützung

Einen Bericht abrufen

So erhalten Sie Berichte von Amazon, um Verkautspartnern bei der Verwaltung ihres Geschäfts zu helfen.

API-Version: 2021-06-30

Holen Sie sich die Informationen, die zum Abrufen eines Berichtsdokuments erforderlich sind, und laden Sie dann den Bericht herunter.

Schritt 1: Für den Berichtsabruf erforderliche Informationen abfragen

Rufen Sie den getReportDocument-Vorgang zum Abrufen der Informationen auf, die zum Abrufen des Inhalts eines Berichtsdokuments erforderlich sind. Dazu gehören eine vorsignierte URL für das Berichtsdokument und optional der Komprimierungsalgorithmus, der verwendet wird, wenn der Inhalt des Berichtsdokuments komprimiert wurde.

  1. Rufen Sie den getReportDocument-Vorgang auf, wobei die folgenden Parameter übergeben werden:

    NameBeschreibungErforderlich
    reportDocumentIdDie Kennung für das Berichtsdokument.
    Typ: Zeichenfolge
    Ja

    getReportDocument-Beispiel:

    GET https://sellingpartnerapi-na.amazon.com/reports/2021-06-30/documents/DOC-b8b0-4226-b4b9-0ee058ea5760

    Eine erfolgreiche Antwort umfasst Folgendes:

    NameBeschreibung
    reportDocumentIdDie Kennung für das Berichtsdokument. Diese Kennung ist nur in Kombination mit einer Verkäufer-ID eindeutig.
    urlEine vorsignierte URL für das Berichtsdokument. Diese URL läuft nach fünf Minuten ab.
    Typ: Zeichenfolge

    compressionAlgorithmFalls vorhanden, wurde der Inhalt des Berichtsdokuments mit dem bereitgestellten Algorithmus komprimiert.
    Typ: enum (Komprimierungsalgorithmus)

    getReportDocument Beispiel für eine Antwort:

    { "reportDocumentId": "DOC-b8b0-4226-b4b9-0ee058ea5760", "url": "https://d34o8swod1owfl.cloudfront.net/SampleResult%2BKey%3DSample%2BINITVEC%3D58+fa+bf+a7+08+11+95+0f+c1+a8+c6+e0+d5+6f+ae+c8" }
  2. Speichern Sie das url und compressionAlgorithm (optionale Eigenschaft) zur Verwendung in Schritt 2.

Schritt 2: Bericht herunterladen

Sie müssen den Bericht mithilfe der in Schritt 1 zurückgegebenen Informationen herunterladen. Der folgende Beispielcode zeigt, wie Sie ein Berichtsdokument im Klartext-Format herunterladen. Sie können die im Beispielcode demonstrierten Prinzipien auch als Leitfaden für die Erstellung von Anwendungen in anderen Programmiersprachen oder für andere Dokumenttypen (XML, CSV, TSV usw.) verwenden.

  1. Verwenden Sie folgende Eingaben für den Beispielcode:

    • Die Werte url und optional compressionAlgorithm aus dem vorherigen Schritt sind Argumente für die Parameter url und compressionAlgorithm der download-Methode der DownloadExample-Klasse.

📘

Hinweis

Hinweis: Sie müssen die Verschlüsselung immer im Ruhezustand aufrechterhalten. Unverschlüsselte Berichtsinhalte dürfen niemals auf der Festplatte gespeichert werden, auch nicht vorübergehend, da Berichte vertrauliche Informationen enthalten können. Der Beispielcode, den wir zur Verfügung stellen, demonstriert dieses Prinzip.

Beispielcode (Java)

// DownloadExample.java // This example is for use with the Selling Partner API for Reports, Version: 2021-06-30 // and the Selling Partner API for Feeds, Version: 2021-06-30 import java.io.BufferedReader; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.util.zip.GZIPInputStream; import com.squareup.okhttp.MediaType; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import com.squareup.okhttp.ResponseBody; /** * Example that downloads a document. */ public class DownloadExample { public static void main(String args[]) { String url = "<URL from the getFeedDocument/getReportDocument response>"; String compressionAlgorithm = "<compressionAlgorithm from the getFeedDocument/getReportDocument response>"; DownloadExample obj = new DownloadExample(); try { obj.download(url, compressionAlgorithm); } catch (IOException e) { //Handle exception here. } catch (IllegalArgumentException e) { //Handle exception here. } } /** * Download and optionally decompress the document retrieved from the given url. * * @param url the url pointing to a document * @param compressionAlgorithm the compressionAlgorithm used for the document * @throws IOException when there is an error reading the response * @throws IllegalArgumentException when the charset is missing */ public void download(String url, String compressionAlgorithm) throws IOException, IllegalArgumentException { OkHttpClient httpclient = new OkHttpClient(); Request request = new Request.Builder() .url(url) .get() .build(); Response response = httpclient.newCall(request).execute(); if (!response.isSuccessful()) { System.out.println( String.format("Call to download content was unsuccessful with response code: %d and message: %s", response.code(), response.message())); return; } try (ResponseBody responseBody = response.body()) { MediaType mediaType = MediaType.parse(response.header("Content-Type")); Charset charset = mediaType.charset(); if (charset == null) { throw new IllegalArgumentException(String.format( "Could not parse character set from '%s'", mediaType.toString())); } Closeable closeThis = null; try { InputStream inputStream = responseBody.byteStream(); closeThis = inputStream; if ("GZIP".equals(compressionAlgorithm)) { inputStream = new GZIPInputStream(inputStream); closeThis = inputStream; } // This example assumes that the download content has a charset in the content-type header, e.g. // text/plain; charset=UTF-8 if ("text".equals(mediaType.type()) && "plain".equals(mediaType.subtype())) { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, charset); closeThis = inputStreamReader; BufferedReader reader = new BufferedReader(inputStreamReader); closeThis = reader; String line; do { line = reader.readLine(); // Process line by line. } while (line != null); } else { //Handle content with binary data/other media types here. } } finally { if (closeThis != null) { closeThis.close(); } } } } }

Hat Ihnen diese Seite weitergeholfen?