Bevor Sie beginnen

Einige Tipps zur Verwendung der Reports API Code-Snippets. Bitte lesen Sie auch die Übersicht und verweisen auf die API-Referenz. Anrufdatensätze (CDRs) werden in diesen Themen oft als "Datensätze" bezeichnet.

Zu diesem Thema

Abfragemethoden

Mit der Reports API können Sie Anrufdetailsätze (CDRs) abrufen, entweder synchron oder asynchron. Der synchrone Ansatz ist blockierend und wird verwendet, wenn Sie eine kleine Anzahl von Datensätzen (Tausende) erhalten möchten. Die Datensätze werden in einem Array in der Antwort zurückgegeben.

Wenn Sie Abfragen durchführen möchten, die eine große Anzahl von Datensätzen (Millionen) abrufen, kann dies länger dauern und wird am besten mit einem asynchronen Ansatz durchgeführt. Bei einer asynchronen Abfrage wird in der Regel ein Callback-URL-Parameter verwendet und eine Benachrichtigung an die Callback-URL gesendet, wenn der Vorgang abgeschlossen ist. Die andere Möglichkeit besteht darin, den Berichtsstatus regelmäßig abzufragen. Das Ergebnis des asynchronen Ansatzes ist die Generierung einer Zip-Datei, die eine CSV-Datei mit Datensätzen enthält.

Gemeinsame Variablen

Wenn Sie die Codeschnipsel verwenden, kopieren Sie die Ersetzungen für Variablen wie Ihren API-Schlüssel und Ihr API-Geheimnis sowie für andere Variablen, die die API-Anforderung steuern. Einige häufig ersetzte Variablen sind in der folgenden Tabelle aufgeführt:

SchlüsselBeschreibung
VONAGE_API_KEY

Your Vonage API key (see it on your dashboard).

VONAGE_API_SECRET

Your Vonage API secret (also available on your dashboard).

ACCOUNT_ID

The account ID (same as VONAGE_API_KEY) for the account you want to generate reports, or retrieve records for.

REPORT_PRODUCT

Specifies the product for which reports and records are obtained. Can be one of SMS, VOICE-CALL, WEBSOCKET-CALL, VERIFY-API, NUMBER-INSIGHT, MESSAGES, CONVERSATIONS, or ASR.

REQUEST_ID

The request ID returned when a report was created

DATE_START

Date of time window from when you want to start gathering records in ISO-8601 format.

DATE_END

Date of time window from when you want to stop gathering records in ISO-8601 format.

STATUS

Status of message or call.

REPORT_STATUS

Status of report generation, can be any of PENDING, PROCESSING, SUCCESS, ABORTED, FAILED, TRUNCATED. For report listing, status is passed in as a comma-separated list of report status values.

Datumsbereiche

Für viele der Anrufe können Sie entweder eine Nachrichten- oder Anruf-ID oder einen Datumsbereich angeben, aber nicht beides. Die Datumsbereiche sind vom ältesten bis zum neuesten Datum und im ISO-8601-Format.

Die Daten können in einem der folgenden Formate angegeben werden: yyyy-mm-ddThh:mm:ss[.sss]±hhmm oder yyyy-mm-ddThh:mm:ss[.sss]Z.

Dieses Beispiel zeigt den Abruf einer Liste von Datensätzen unter Verwendung eines Datumsbereichs:

curl -u "$VONAGE_API_KEY:$VONAGE_API_SECRET" \ "https://api.nexmo.com/v2/reports/records?account_id=abcd1234&product=MESSAGES&direction=outbound&date_start=2020-06-04T00:01:00Z&date_end=2020-06-04T00:02:00Z"

Für Daten, die ein + in einem GET Abfrage, bei der Datumsangaben als Abfrageparameter übergeben werden, müssen Sie die Datumsangaben z. B. URL-kodieren:

curl -G --data-urlencode date_start="2020-06-04T08:00:00+0000" --data-urlencode date_end="2020-06-04T14:00:00+0000" -u "$VONAGE_API_KEY:$VONAGE_API_SECRET" \ "https://api.nexmo.com/v2/reports/records?account_id=abcd1234&product=SMS&direction=outbound"

Produkt

Für die API-Aufrufe Datensätze synchron laden und Bericht asynchron generieren müssen Sie ein Produkt angeben. Die Seite product gibt das Vonage-API-Produkt an, für das Berichte und Datensätze abgerufen werden. product kann eine der folgenden sein SMS, VOICE-CALL, WEBSOCKET-CALL, VERIFY-API, NUMBER-INSIGHT, MESSAGES, CONVERSATIONS, oder ASR.

Die folgende Tabelle zeigt, welche API-Aufrufe product:

Parameter Datensätze laden sync Bericht asynchron generieren Berichte auflisten Berichtsstatus abrufen Bericht abbrechen Bericht abrufen Anmerkungen
product Wird benötigt, um Datensätze zu laden oder Berichte zu erstellen. Eine von SMS, VOICE-CALL, WEBSOCKET-CALL, VERIFY-API, NUMBER-INSIGHT, MESSAGES, CONVERSATIONS, oder ASR.

Legende zur Tabelle: = erforderlich | = nicht zutreffend

Abfrageparameter für das synchrone Laden von Datensätzen

Die in den API-Aufrufen angegebenen Parameter können sich je nach product angegeben. Die folgende Tabelle zeigt die Verwendung eines Parameters für verschiedene Produkte:

Parameter SMS Stimme Verify Numbers Einsicht Nachrichten Konversationen Beschreibung
product
account_id Account, für den Sie Unterlagen erhalten möchten.
direction 🔸 Richtung der Nachrichten oder des Anrufs. Kann sein inbound oder outbound.
id 🔸 🔸 🔸 🔸 🔸 🔸 Ungültig, wenn ein Datumsbereich angegeben wurde.
date_start 🔸 🔸 🔸 🔸 🔸 🔸 Ungültig, wenn id angegeben.
date_end 🔸 🔸 🔸 🔸 🔸 🔸 Ungültig, wenn id angegeben.
include_message 🔸 🔸 Wenn true den Hauptteil der Textnachricht enthalten.
type Für CONVERSATIONS nur. Kann sein ip-voice oder cs-custom-event.
status 🔸 🔸 🔸 Prüft auf Datensätze mit dem angegebenen Status. Zum Beispiel delivered (für Nachrichten) oder answered (für einen Sprachanruf). Für die Prüfung des Berichtsstatus kann es sein SUCCESS oder einen der anderen unterstützten Werte.

Legende zur Tabelle: = erforderlich | 🔸 = fakultativ | = entfällt

Abfrageparameter für Asynchronen Bericht erstellen

Die in den API-Aufrufen angegebenen Parameter können sich je nach product angegeben. Die folgende Tabelle zeigt die Verwendung eines Parameters für verschiedene Produkte:

Parameter SMS Stimme Verify Numbers Einsicht Nachrichten Konversationen Beschreibung
product Erforderlich, um Datensätze zu laden oder Berichte zu erstellen.
account_id
direction 🔸 Richtung der Nachrichten oder des Anrufs. Kann sein inbound oder outbound.
date_start 🔸 🔸 🔸 🔸 🔸 🔸
date_end 🔸 🔸 🔸 🔸 🔸 🔸
include_subaccounts 🔸 🔸 🔸 🔸 🔸 🔸
callback_url 🔸 🔸 🔸 🔸 🔸 🔸
status 🔸 🔸 🔸 🔸 Prüft auf Datensätze mit dem angegebenen Status. Zum Beispiel delivered (für Nachrichten) oder answered (für einen Sprachanruf). Für die Prüfung des Berichtsstatus kann es sein SUCCESS oder einen der anderen unterstützten Werte.
client_ref 🔸
account_ref 🔸
include_message 🔸 🔸 Wenn truewird der Text der Nachricht in der Antwort enthalten sein.
network 🔸 🔸 🔸 🔸
from 🔸 🔸 🔸
to 🔸 🔸 🔸 🔸
number 🔸
id 🔸
type Für CONVERSATIONS nur. Kann sein ip-voice oder cs-custom-event.

Legende zur Tabelle: = erforderlich | 🔸 = fakultativ | = entfällt

Diese Parametertabellen enthalten nicht alle verfügbaren Parameter. Siehe die API-Referenz für alle Parameter.

Weitere Beispiele für Anfragen

Viele Beispiele für Reports API-Aufrufe finden Sie in der Curl-Code-Schnipsel-Repository. Diese Beispiele zeigen einige zusätzliche Aufrufe zusätzlich zu den in der Codeschnipsel-Abschnitt und demonstrieren auch die Verwendung von produktspezifischen Parametern.

ID anfordern

Wenn Sie die asynchrone Erstellung eines Berichts anfordern, wird eine Auftragskennung zurückgegeben. Diese können Sie in nachfolgenden Aufrufen verwenden, um z. B. den Berichtsstatus zu überprüfen oder einen Bericht abzubrechen. Eine Beispielantwort auf eine asynchrone Berichtserstellungsanforderung lautet wie folgt:

{
  "request_id": "ri3p58f-48598ea7-1234-5678-9012-faabd79bdc2e",
  "request_status": "PENDING",
  "direction": "outbound",
  "product": "SMS",
  "account_id": "abcd1234",
  "date_start": "2020-05-21T13:27:00+0000",
  "date_end": "2020-05-21T13:57:00+0000",
  "include_subaccounts": false,
  "status": "delivered",
  "include_message": false,
  "receive_time": "2020-06-03T15:24:31+0000",
  "_links": {
    "self": {
      "href": "https://api.nexmo.com/v2/reports/ri3p58f-48598ea7-cb2d-1234-5678-fa1234567890"
    }
  }
}

Datei-ID

Die file_id ist erforderlich, um eine asynchron erstellte Berichtsdatei abzurufen. Sie können die file_id aus den Details einer Berichtsstatus abrufen oder Listenberichte Aufruf oder aus dem Körper des Abschluss-Callbacks. Die Antwort enthält JSON ähnlich wie:

    ...
    "download_report": {
    "href": "https://api.nexmo.com/v3/media/84a14d67-1234-5678-9012-ac042b16092a"
    }

In diesem Fall 84a14d67-1234-5678-9012-ac042b16092a ist die FILE_ID.

Siehe auch