Ana SayfaBelgelerKod ÖrnekleriAPI BaşvurusuDuyurularModellerSürüm NotlarıSSSGitHubVideolar
Geliştirici MerkeziAPI DurumuDestek
Belgeler
Geliştirici MerkeziAPI DurumuDestek

Eğitim: Bir C# SDK Kullanarak SP-API Çağrılarınızı Otomatikleştirin

Amazon (LWA) token değişimi ve kimlik doğrulaması ile Oturum Açma ile SP-API çağrılarınızı otomatikleştirin.

Bu eğitim, Amazon (LWA) token değişimi ile Oturum Açma (LWA) token değişimi ile bir C# SDK oluşturmak için gerekli tüm bilgileri ve uygulamanızı oluşturmak için bir kimlik doğrulaması sağlar.

Ürün bilgilerine erişme, siparişleri yönetme, gönderileri işleme ve daha fazlası dahil olmak üzere Amazon pazar yeri özelliklerini uygulamalarınıza entegre etmek için bu SDK'yı kullanabilirsiniz.

Eğitim

Aşağıdaki eğitim, SP-API çağrılarını otomatikleştirmek için kendi C# SDK'nızı kurmanıza yardımcı olacaktır.

Ön koşullar

Bu eğitimi tamamlamak için aşağıdaki ön koşullara ihtiyacınız vardır:

  • Taslak veya yayınlanmış durumda bir hibrit veya SP-API uygulaması
  • Entegre geliştirme ortamı (IDE) yazılımı (bu adım adım, Windows işletim sisteminde Visual Studio IDE'yi kullanır)

Başvurunuzun Satış Ortağı API'sine bağlanabilmesi için, onu kaydetmeniz ve bir satış ortağı tarafından yetkilendirilmesi gerekir. Hibrit veya SP-API uygulamanız yoksa, aşağıdaki adımları izleyin geliştirici olarak kaydolun, başvurunuzu kaydedin, ve Satış Ortağı API uygulamalarını yetkilendirme. Ardından, bu eğitime geri dönün.

Ardından, eğitim için çalışma alanınızı ayarlayın.

Adım 1. Çalışma alanınızı ayarlayın

  1. Yerel sürücünüzde, bu proje için bir dizin oluşturun ve adlandırın SwaggerToCL.

  2. Aşağıdaki araçları indirin.

  3. Swagger Code Generator'ı indirmek için aşağıdaki komutu çalıştırın:

    wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar
  4. Kopyalama swagger-codegen-cli.jar yerel dizininize C:\\SwaggerToCL.

  5. GitHub'da şu adrese gidin https://github.com/amzn/selling-partner-api-models/tree/main/models ve klonlamak için aşağıdaki komutu kullanın selling-partner-api-models yerel dizininize depo C:\\SwaggerToCL.

    git clone https://github.com/amzn/selling-partner-api-models
  6. Şuraya git selling-partner-api-models\\models deponun yerel kopyasındaki klasör ve modeller alt klasörlerinden bir JSON dosyasını kopyalayın C:\\SwaggerToCL. Bu eğitim şunları kullanır: Sellers.json dosya.

  7. GitHub'da şu adrese gidin https://github.com/amzn/selling-partner-api-models/tree/main/clients/sellingpartner-api-aa-csharp ve indirin sellingpartner-api-aa-csharp yerel bilgisayarınıza klasör.

Bu klasör, Amazon Satış Ortağı API'leri için bir erişim belirteci oluşturmak için yardımcı sınıflar sağlar. Tarafından üretilen Satış Ortağı API İstemci Kitaplıkları ile kullanılmak üzere tasarlanmıştır Swagger Kodları RestSharp kütüphanesini kullanarak. Ayrıca özel projelere entegre edilebilir.

Gerekli kurulumu tamamladığımıza göre artık bir sonraki adımda sellingpartner-api-aa-csharp klasöründe sağlanan kimlik doğrulama ve yetkilendirme sınıflarıyla Java SDK'yi oluşturacağız.

Adım 2. LWA belirteç değişimi ve kimlik doğrulaması ile bir C # SDK oluşturun

  1. Visual Studio'yu açın.

  2. İçinde sellingpartner-api-aa-csharp klasör, seçin SellingPartnerAPIAuthAndAuthCSharp.sln dosyalayın ve bunu kullanarak oluşturun geliştirmek Visual Studio'da seçenek. Bu, üretir Amazon.SellingPartnerAPIAA.dll klasördeki montaj sellingpartner-api-aa-csharp\\src\\Amazon.SellingPartnerAPIAA\\bin\\Debug\\netstandard2.0.

  3. Bir terminal açın ve C# istemci kitaplığını oluşturmak için aşağıdaki komutları çalıştırın. Oluşturulan istemci kitaplığı için varsayılan paket adı Swagger.IO. Bu komutlar, istemci kitaplıklarını paket adı yerine ilgili API adlarıyla oluşturur. Swagger.IO.

    • İçinde C:\\SwaggerToCL, adında bir JSON dosyası oluşturun csharpConfig.json, bir editör açın ve aşağıdaki kodu ekleyin. için packageName, istemci kitaplığını oluşturmak istediğiniz API'nin aynı adını kullanın:
    {"packageName":"SellingPartnerAPI.SellerAPI","targetFramework":"v4.7.2"}

    Özelleştirilmiş bir paket adıyla C# kodu oluşturmak için bu komutu çalıştırın:

    java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate -i C:\SwaggerToCL\[name of model].json -l csharp -t [path to selling-partner-api-models\clients\sellingpartner-api-aa-csharp folder]\src\Amazon.SellingPartnerAPIAA\resources\swagger-codegen\templates\ -o C:\SwaggerToCL\[name of client library] -c C:\SwaggerToCL\csharpConfig.json

    Bu komut kullanır Sellers.json C# kodu oluşturmak için:

    java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate -i C:\SwaggerToCL\Sellers.json -l csharp -t C:\SwaggerToCL\sellingpartner-api-aa-csharp\src\Amazon.SellingPartnerAPIAA\resources\swagger-codegen\templates\ -o C:\SwaggerToCL\Sellers_CsharpCL -c C:\SwaggerToCL\csharpConfig.json

    SDK şurada oluşturulur C:\\SwaggerToCL\\Sellers_CsharpCL. Bir sonraki adım, gerçek uygulamayı yazmak ve oluşturulan C # SDK'yı kullanarak SP-API'ye bağlanmaktır.

Adım 3. Oluşturulan C# SDK'sını kullanarak Satış Ortağı API'sine bağlanın

  1. Visual Studio IDE'de oluşturduğunuz kitaplığa gidin Satıcılar_CSharpcl klasörü açın ve açın .sln dosya. .sln paket dosyası aşağıda belirtildiği gibi isme sahip olacaktır. Adım 2. LWA belirteç değişimi ve kimlik doğrulaması ile bir C # SDK oluşturun. Bu örnekte, paket dosyası adı SellingPartnerAPI.SellerAPI.sln.

  2. Sağ tıklayın SellingPartnerAPI.SellerAPI dosyalayın ve seçin Ekle > Referanslar.

  3. İçinde Referanslar pencere, seç Gözat, şuraya git sellingpartner-api-aa csharp/src/Amazon.SellingPartnerAPIAA/bin/Debug/netstandard2.0 ve seç Amazon.SellingPartnerAPIAA.dll.

  4. 1-3 için adımları tekrarlayın SellingPartnerAPI.SellerAPI.Test dosya.

  5. Oluşturulan kitaplığınızdaki Sellers_CsharpCL klasörüne gidin, SellingPartnerAPI.SellerAPI dosyasına sağ tıklayın, Seçenekler > Genel'i seçin ve hedef çerçeveyi .net Framework v4.7 ve üzeri olarak değiştirin.

  6. 5. adımı tekrarlayın SellingPartnerAPI.SellerAPI.Test dosya.

  7. Sağ tıklayın SellingPartnerAPI.SellerAPI dosyala ve seç NuGet Paketlerini Yönet. Aşağıdaki paket sürümlerine sahip olduğunuzdan emin olun (Değilse, ilgili NuGet paketlerini yükleyin):

    • JsonSubTypes 1.2.0 veya tümü
    • Newtonsoft.json 12.0.3 veya tümü
    • RestSharp 106.12.0
    • RateLimiter 2.2.0 veya daha yenisi (bu da yüklenecek ComposableAsync.Core)
  8. Sağ tıklayın SellingPartnerAPI.SellerAPI.Test dosyala ve seç NuGet Paketlerini Yönet. Yükleme Ünite 2.6.4 paket.

    📘

    NuGet paketlerinin manuel kurulumu

    Bazı durumlarda (örneğin IOS kullanırken), NuGet paketlerinde gerekli sürümler görünür ancak bir hatayla karşılaşabilirsiniz. Bu senaryoda, paketleri dosya sistemindeki paket klasöründen manuel olarak eklemeniz gerekir:

    1. Sellers_CsharpCL içinde, oluşturulan kitaplığınızdaki .sln klasörüne gidip {{2}} dosyasını açın.
    2. Sağ tıklayın SellingPartnerAPI.SellerAPI dosyalayın ve seçin Ekle > Referanslar.
    3. İçinde Referanslar pencere, seç Gözat, şuraya git sellingpartner-api-aa csharp/src/Amazon.SellingPartnerAPIAA/bin/Debug/netstandard2.0, oluşturulan istemci kitaplığı klasörünü seçin (örneğin, Sellers_CsharpCL), sonra seçin paketleri ve hatayla karşılaştığınız paketi ekleyin.
  9. İçinde SellingPartnerAPI.SellerAPI.Test > Api klasör, aç [Modelname]Tests.cs dosyalayın ve aşağıdaki kodu ekleyin:

    using System; using System.IO; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Reflection; using RestSharp; using SellingPartnerAPI.SellerAPI.Client; using SellingPartnerAPI.SellerAPI.Api; using SellingPartnerAPI.SellerAPI.Model; using Amazon.SellingPartnerAPIAA; namespace SellingPartnerAPI.SellerAPI.Test { class SellersApiTests { public static void Main(string[] args) { try { LWAAuthorizationCredentials lwaAuthorizationCredentials = new LWAAuthorizationCredentials { ClientId = "amzn1.application-oa2-client.******************", ClientSecret = "***********************************", RefreshToken = "Atzr|***********************************", Endpoint = new Uri("https://api.amazon.com/auth/o2/token") }; SellersApi sellersApi = new SellersApi.Builder() .SetLWAAuthorizationCredentials(lwaAuthorizationCredentials) .Build(); GetMarketplaceParticipationsResponse result = sellersApi.GetMarketplaceParticipations(); Console.WriteLine(result.ToJson()); } catch (LWAException e) { Console.WriteLine("LWA Exception when calling SellersApi#getMarketplaceParticipations"); Console.WriteLine(e.getErrorCode()); Console.WriteLine(e.getErrorMessage()); Console.WriteLine(e.Message); } catch (ApiException e) { Console.WriteLine("Exception when calling SellersApi#getMarketplaceParticipations"); Console.WriteLine(e.Message); } } } }

    LWAAuthorizationCredentials örnek parametreleri:

AdAçıklamaZorunlu mu?
ClientIdLWA istemci tanımlayıcınız. Daha fazla bilgi için bkz. Uygulama bilgilerinizi ve kimlik bilgilerinizi görüntüleme.Evet
ClientSecretYour LWA client secret. For more information, refer to Viewing your application information and credentialsEvet
RefreshTokenThe LWA refresh token. Get this value when the selling partner authorizes your application. For more information, refer to Authorizing Selling Partner API Applications.No. Include RefreshToken if the operation that you call in the following step requires selling partner authorization. All operations that are not grantless operations require selling partner authorization. If you include RefreshToken, do not include Scopes.
ScopesThe scope of the LWA authorization grant. You can specify one or more Scopes values:
- ScopeNotificationsAPI. For the Notifications API.
- ScopeMigrationAPI. For the Authorization API.
Hayır. Scopes, aşağıdaki adımda çağırdığınız işlem izinsiz ise eklenmelidir. Scopes ekliyorsanız RefreshToken eklemeyin.
EndpointLWA kimlik doğrulama sunucusu URI'si.Evet
Example of an operation call that requires selling partner authorization:

```csharp
using Amazon.SellingPartnerAPIAA;
LWAAuthorizationCredentials lwaAuthorizationCredentials = new LWAAuthorizationCredentials
{
  ClientId = "myClientId",
  ClientSecret = "myClientSecret",
  RefreshToken = "Aztr|...",
  Endpoint = new Uri(""https://api.amazon.com/auth/o2/token"")
};
```

Example of a grantless operation call:

```csharp
using Amazon.SellingPartnerAPIAA;
LWAAuthorizationCredentials lwaAuthorizationCredentials = new LWAAuthorizationCredentials
{
  ClientId = "myClientId",
  ClientSecret = "myClientSecret",
  Scopes = new List<string>() { ScopeConstants.ScopeNotificationsAPI, ScopeConstants.ScopeMigrationAPI }
  Endpoint = new Uri(""https://api.amazon.com/auth/o2/token"")
};
```
  1. Kodun çıktısını görüntülemek için, bir konsol uygulamasına dönüştürmeniz gerekir. Bunu yapmak için sağ tıklayın SellingPartnerAPI.SellerAPI.Test dosyala ve seç Seçenekler.

  2. Üzerinde Proje Seçenekleri pencere, sol gezinme bölmesinde genişletin İnşa etmek, sonra seç General. İçinde Kod Oluşturma bölüm, seç Hedefi Derleyin ve seç GUI ile yürütülebilir. Seçiniz TAMAM.

  3. Projeyi oluşturun ve çalıştırın.

C# SDK'de Sorun Giderme

IRestRequest hataları: "RestSharp Version=105.0.0.0. Culture=neutral. PublicKevToken=598062e77f915f75, referans verilmeyen bir assembly'de tanımlandı. {{2}} şeklindeki assembly için referans eklemeniz gerekiyor"

Burayı seçerek cevabı genişletebilirsiniz. {{0}} paketini 106.12.0.0 sürümüne güncelleyin. 106.12 sürümünün başarıyla güncellendiğinden emin olmak için referansa göz atın. 105.0.0.0 sürümü gösterilmeye devam ediyorsa eski sürümü referanstan kaldırın ve 106.12.0.0 paketini, oluşturulan istemci kütüphanesinin bulunduğu paketler klasöründen manuel olarak ekleyin.

"{{0}} türü veya ad alanı adı bulunamadı (kullanma yönergeniz veya assembly referansınız mı eksik?)"

Yanıtı genişletmek için seçin.

In some scenarios, even though you have the required version in the NuGet packages for Newtonsoft, you need to manually add the package from the package folder in the file system. To resolve this, use the following steps:

  1. In Visual Studio, right-click your generated SDK package and choose Add, then References.

  2. .Net Assembly'deki referanslar penceresinde browse** öğesini seçin.

  3. Navigate to the generated client library folder in localpackages and add the specific package for Newtonsoft.

"Mesaj: SellingPartnerAPI.servicesApi.Client.ApiClient:rateLimiter (3) alan türü şu nedenle yüklenemedi: ComposableAsync.Core, Version=1.1.1.0, Culture=neutral, PublicKeyToken=null şeklindeki dosya veya assembly ya da bağımlılarından biri yüklenemedi."

Yanıtı genişletmek için seçin.

Kodunuzu oluşturup çalıştırdıktan sonra bu hatayı alıyorsanız ComposableAsync.Core bağımlılık paketi indirilmiş ancak referans olarak eklenmemiştir. Dll'yi manuel bir şekilde referans olarak eklediğinizden emin olun.

Modellerle ilgili eşleme sorunları

Yanıtı genişletmek için seçin.

ItemAsin modeli, JsonObject türüyle oluşturulmuştur ancak zorunlu ItemAttributes dizesi için JsonObjectAttribute gerekir. Modellerde gereken eşlemeyi içe aktarmak için Katalog Ürünleri API'sini kullanan bu komutu kullanabilirsiniz:

`java -jar swagger-codegen-cli.jar generate -i catalogItems_2022-04-01.json -l csharp -t sellingpartner-api-aa-csharp\src\Amazon.SellingPartnerAPIAA\resources\swagger-codegen\templates —import-mappings ItemAttributes=Newtonsoft.Json.JsonObjectAttribute —import-mappings ItemAsin=System.string -o catalogItems2022-04-01_import`

HttpRequestHeaders.ToJson(): geçersiz kılacak uygun bir yöntem bulunamadı."

Yanıtı genişletmek için seçin.

override anahtar kelimesini virtual ile değiştirin. Yöntemler, geçersiz kılınabilmeleri için virtual olmalıdır.

public virtual string ToJson() { return JsonConvert.SerializeObject(this, Formatting.Indented); }

"BaseValidate adı geçerli bağlamda mevcut değil"

Yanıtı genişletmek için seçin.

Sınıfta belirtilen yöntemlerin yorumunu kaldırın:

// IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext) // { // foreach (var x in BaseValidate(validationContext)) // yield return x; // yield break; // }

Bu sayfa size yardımcı oldu mu?