Tutorial: Automatisieren Sie Ihre SP-API-Aufrufe mithilfe eines JavaScript-SDK für Node.js
Automatisieren Sie Ihre SP-API-Aufrufe mit dem Tokenaustausch und der Authentifizierung von Login with Amazon (LWA).
Dieses Tutorial enthält alle erforderlichen Details, um ein JavaScript-SDK für Node.js mit Login with Amazon (LWA) -Tokenaustausch und Authentifizierung zu generieren, um Ihre Anwendung nahtlos zu erstellen. Sie lernen die Voraussetzungen kennen, die für die Erstellung des JavaScript-SDK für Node.js erforderlich sind, und sehen sich auch ein Beispiel an, das die Verkaufspartner-API für Verkäufer und den Swagger Code Generator verwendet.
Das SP-API-JavaScript-SDK für Node.js wurde für die serverseitige Integration mit der Vertriebspartner-API von Amazon entwickelt. Dieses Tutorial behandelt die Integration und Durchführung von SP-API-Aufrufen, wobei der Schwerpunkt auf der praktischen Anwendung liegt, sodass Sie API-Aufrufe ausführen und die Marketplace-Funktionen von Amazon direkt in Ihre serverseitigen Prozesse integrieren können.
Tutorial
Das folgende Tutorial hilft Ihnen dabei, Ihr eigenes JavaScript-SDK für Node.js zur Automatisierung von SP-API-Aufrufen einzurichten.
Voraussetzungen
Um dieses Tutorial abzuschließen, benötigen Sie die folgenden Voraussetzungen:
- Eine Hybrid- oder SP-API-App im Entwurfs- oder Veröffentlichungsstatus
- Software für integrierte Entwicklungsumgebungen (IDE)
- Java Version 7 oder höher
swagger-codegen-cli-2.4.29
- Node.js v18 oder höher
Warnung
Du musst verwenden
swagger-codegen-cli-2.4.29
. Wenn du verwendestswagger-codegen-cli
andere Versionen als 2,4,29, das Generieren des SDK schlägt fehl. Die Verwendung der falschen Version kann zu größeren Problemen im Integrationsprozess führen.
Bevor Ihre Anwendung eine Verbindung zur Vertriebspartner-API herstellen kann, müssen Sie sie registrieren und sie muss von einem Vertriebspartner autorisiert werden. Wenn Sie keine Hybrid- oder SP-API-App haben, folgen Sie den Schritten registriere dich als Entwickler, registriere deine Bewerbung, und Autorisierung von API-Anwendungen für Vertriebspartner. Kehren Sie dann zu diesem Tutorial zurück.
Richten Sie als Nächstes Ihren Arbeitsbereich für das Tutorial ein.
Schritt 1. Richte deinen Workspace ein
-
Erstellen Sie auf Ihrem lokalen Laufwerk ein Verzeichnis für dieses Projekt und benennen Sie es SPAPI_JavaScript_SDK, und navigiere zum neuen Verzeichnis.
mkdir SPAPI_JavaScript_SDK cd SPAPI_JavaScript_SDK -
Laden Sie die folgenden Tools herunter.
- IDE-Software (diese exemplarische Vorgehensweise verwendet Visuelles Studio IDE (unter Windows OS)
- GNU Wget
- Java Version 7 oder höher
-
Führen Sie den folgenden Befehl aus, um den Swagger Code Generator herunterzuladen:
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.29/swagger-codegen-cli-2.4.29.jar -
Verwenden Sie den folgenden Befehl, um die Datei abzurufen und die Berechtigungen zu ändern, um sie ausführbar zu machen.
chmod 744 swagger-codegen-cli-2.4.29.jar -
Kopieren
swagger-codegen-cli.jar
in dein lokales VerzeichnisC:\\SPAPI_JavaScript_SDK
. -
Gehe in GitHub zu
https://github.com/amzn/selling-partner-api-models/tree/main/models
und verwende den folgenden Befehl, um das zu klonenselling-partner-api-models
Repository in dein lokales VerzeichnisC:\\SPAPI_JavaScript_SDK
.git clone https://github.com/amzn/selling-partner-api-modelsNachdem Sie das erforderliche Setup abgeschlossen haben, besteht der nächste Schritt darin, das Java SDK mit den Authentifizierungs- und Autorisierungsklassen zu generieren, die im Ordner
sellingpartner-api-javascript
enthalten sind.
Schritt 2. Generieren Sie ein JavaScript-SDK für Node.js mit LWA-Token-Austausch und Authentifizierung
Navigiere zum SellingPartnerAPISdkJavaScriptNode/src
Verzeichnis. In der src
Verzeichnis finde das generate-js-sdk.sh shell
Skriptdatei. Führen Sie das folgende Skript in der Befehlszeile aus:
cd SellingPartnerAPISdkJavaScriptNode/src
./generate-js-sdk.sh -j ../../swagger-codegen-cli-2.4.29.jar
Sie können sich jetzt die ansehen models
und sdk
Verzeichnisse, die die API-Modelle bzw. das JavaScript-SDK enthalten, in Ihrem Paketstamm.
Dieser Ordner enthält Hilfsklassen zum Generieren eines Zugriffstokens für Amazon-Verkaufspartner-APIs. Er ist für die Verwendung mit den Vertriebspartner-API-Clientbibliotheken vorgesehen, die von generiert wurden Swagger Codegen mit der RestSharp-Bibliothek. Es kann auch in benutzerdefinierte Projekte integriert werden.
Schritt 3. Erstellen Sie ein lokales NPM-Paket
Verpacken Sie Ihr SDK, um es in mehreren lokalen Projekten zu verwenden, ohne das SDK in der öffentlichen npm-Registrierung zu veröffentlichen.
-
Öffne dein
package.json
Datei und füge Folgendes hinzu, um sicherzustellen, dasspackage.json
ist richtig eingerichtet, um die notwendigen Verzeichnisse einzuschließen. :"files": [ "src/helper/", "sdk/" ]Dieser Schritt stellt sicher, dass nur die angegebenen Verzeichnisse und deren Inhalt (z. B.
src/helper/
undsdk/
) sind im Paket enthalten und andere werden ignoriert. -
Navigiere zum
SellingPartnerAPISdkJavaScriptNode
Verzeichnis in Ihrem Terminal oder in der Befehlszeile. -
Führen Sie den folgenden Befehl aus, um das Paket zu erstellen:
npm packDieser Befehl erstellt einen Tarball (TGZ-Datei) in Ihrem Projektverzeichnis mit dem Namen
amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz
oder ähnlich, basierend auf dem Namen und der Version Ihres Pakets. Es enthält alle notwendigen Dateien aus Ihrem Projekt und erstellt effektiv ein lokales Paket, das wie jedes veröffentlichte npm-Paket installiert werden kann.
Schritt 4. Erstellen Sie ein neues Projekt mit dem lokalen npm-Paket
Jetzt können Sie ein neues Projekt erstellen, das das lokale npm-Paket verwendet. Mit diesem Ansatz können Sie das SDK in einer Umgebung testen, die der Umgebung ähnelt, auf die Endentwickler stoßen werden.
-
Geben Sie den folgenden Befehl ein, um ein neues Verzeichnis für das neue Projekt zu erstellen. In diesem Beispiel wird davon ausgegangen, dass Ihr aktuelles Verzeichnis
SellingPartnerAPISdkJavaScriptNode/src
:cd ../../ mkdir MyNewSPAPIProject cd MyNewSPAPIProject -
Richten Sie ein neues Node.js Projekt ein, um eine saubere Umgebung zu gewährleisten.
npm init -y -
Folgen Sie den Anweisungen, um Ihr neues Projekt zu initialisieren. Akzeptieren Sie die Standardoptionen, wenn sie Ihren Einstellungen entsprechen.
-
Installieren Sie das lokale npm-Paket, das Sie in erstellt haben Schritt 3. Erstellen Sie ein lokales NPM-Paket in dieses neue Projekt. Ersetzen Sie für den folgenden Befehl den Platzhalter
../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz
mit dem tatsächlichen Pfad zu Ihrer TGZ-Datei. Dieser Schritt ist entscheidend, da er simuliert, wie andere Entwickler Ihr SDK in ihre Projekte integrieren werden.npm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgzHinweis
Der Weg zu deinem
.tgz
Die Datei kann absolut oder relativ sein, basierend auf Ihrem aktuellen Arbeitsverzeichnis. Zum Beispiel, wenn dein.tgz
Datei befindet sich in derSellingPartnerAPISdkJavaScriptNode
Verzeichnis, dein Befehl istnpm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz
.Nach Abschluss dieser Schritte wird Ihr Paket als Abhängigkeit in Ihrem neuen Projekt aufgeführt
package.json
, und Sie können Funktionen wie gewohnt importieren.
Schritt 5. Stellen Sie mithilfe des generierten JavaScript-SDK für Node.js eine Verbindung zur Vertriebspartner-API her
Nachdem Sie die Authentifizierung eingerichtet haben, können Sie jetzt mit den SP-API-Endpunkten interagieren.
-
Speichern Sie Ihre LWA-Anmeldeinformationen in einem
app.config.mjs
Datei im Stammverzeichnis des Projekts.touch app.config.mjs -
Definieren Sie Ihre Anmeldeinformationen darin
app.config.mjs
wie folgt:export const AppConfig = { lwaClientId: "< LWA client ID >", lwaClientSecret: "< LWA client secret >", lwaRefreshToken: "< LWA refresh token >", }Vorsicht
Übergeben Sie diese Datei niemals an Ihr Versionskontrollsystem, da sie vertrauliche Informationen enthält. Bitte stellen Sie sicher, dass diese LWA-Anmeldeinformationen sicher in einem verschlüsselten Format gespeichert werden.
-
Erstellen Sie eine neue Datei mit dem Namen
index.js
in Ihr Projektstammverzeichnis und fügen Sie das folgende Skript ein, das einen Aufruf an einen bestimmten SP-API-Endpunkt initiiert und die Antwort in der Konsole protokolliert.touch index.js -
Kopieren Sie Folgendes und fügen Sie es ein
index.js
:import { AppConfig } from './app.config.mjs'; import { LwaAuthClient } from '@amzn/testsellingpartnerjavascriptapilwalib/src/helper/LwaAuthClient.mjs'; import { SellersApi, ApiClient as SellersApiClient, } from '@amzn/testsellingpartnerjavascriptapilwalib/sdk/src/sellers/index.js'; (async () => { const lwaClient = new LwaAuthClient( AppConfig.lwaClientId, AppConfig.lwaClientSecret, AppConfig.lwaRefreshToken ); const sellerApiClient = new SellersApiClient( 'https://sellingpartnerapi-fe.amazon.com' ); const sellerApi = new SellersApi(sellerApiClient); sellerApiClient.applyXAmzAccessTokenToRequest( await lwaClient.getAccessToken() ); const participations = await sellerApi.getMarketplaceParticipations(); console.log( JSON.stringify(participations, null, ' ') + '\n**********************************' ); })(); -
Führen Sie das Skript aus: Führen Sie den folgenden Befehl in Ihrem Terminal oder in der Befehlszeile aus, um eine GET-Anfrage an den API-Endpunkt des Verkäufers zu initiieren:
node index.jsDieser Befehl führt Ihr Skript aus, initiiert den API-Aufruf und zeigt die Ergebnisse in Ihrer Konsole an.
Erwartete Leistung:
{ "payload": [ { "marketplace": { "id": "xxxxx", "countryCode": "JP", "name": "Amazon.co.jp", "defaultCurrencyCode": "JPY", "defaultLanguageCode": "ja_JP", "domainName": "www.amazon.jp“ }, "participation": { "isParticipating": true, "hasSuspendedListings": false } } ] }
Updated 23 days ago