Google udostępnia bibliotekę klienta .NET do interakcji z interfejsem API Ad Managera. Zalecamy używanie biblioteki klienta z NuGet.
Aby rozpocząć, utwórz nowy projekt w wybranym IDE lub dodaj zależność do istniejącego projektu. Google publikuje artefakty biblioteki klienta w repozytorium NuGet jako Google.Ads.AdManager.V1.
Informacje o pakiecie
<!-- MyProject.csproj -->
<PackageReference Include="Google.Ads.AdManager.V1" Version="1.0.0-beta13" />
Interfejs wiersza poleceń .NET
dotnet add package Google.Ads.AdManager.V1 --version 1.0.0-beta13
Konfigurowanie danych logowania
Biblioteka klienta .NET używa do uwierzytelniania protokołu OAuth2 i domyślnego uwierzytelniania aplikacji (ADC).
ADC wyszukuje dane uwierzytelniające w następujących lokalizacjach (w podanej kolejności):
- Zmienna środowiskowa
GOOGLE_APPLICATION_CREDENTIALS. - Dane logowania użytkownika skonfigurowane za pomocą interfejsu wiersza poleceń Google Cloud (gcloud CLI).
- Konto usługi dołączone do zasobu Google Cloud, gdy jest on uruchomiony w Google Cloud.
Informacje o tworzeniu i konfigurowaniu danych logowania ADC znajdziesz w artykule na temat uwierzytelniania.
Wysyłanie pierwszego żądania
Każda usługa ma obiekt ServiceClient z metodami synchronicznymi i asynchronicznymi dla każdej metody REST. Ten przykład odczytuje Network synchronicznie. Wszystkie elementy są identyfikowane przez nazwę zasobu, która składa się z typu i identyfikatora numerycznego elementu.
using Google.Ads.AdManager.V1;
public sealed partial class GeneratedNetworkServiceClientSnippets
{
public void GetNetwork()
{
// Create client
NetworkServiceClient networkServiceClient = NetworkServiceClient.Create();
// Initialize request argument(s)
string name = "networks/[NETWORK_CODE]";
// Make the request
Network response = networkServiceClient.GetNetwork(name);
}
}
Przykłady innych metod i zasobów znajdziesz w repozytorium GitHub googleapis/google-cloud-dotnet.
Obsługuj błędy
Wszystkie błędy interfejsu API Ad Managera w bibliotece klienta.NET są typu Grpc.Core.RpcException.
Błędy zawierają unikalny identyfikator request_id, który możesz podać zespołowi pomocy, aby uzyskać pomoc w rozwiązaniu problemu. W tym przykładzie wyodrębniany jest stan HTTP, komunikat o błędzie i request_id.
using Google.Ads.AdManager.V1;
using Google.Api.Gax.Grpc;
using Google.Rpc;
using Grpc.Core;
try
{
NetworkServiceClient networkServiceClient = NetworkServiceClient.Create();
Network network = networkServiceClient.GetNetwork("networks/[NETWORK_CODE]");
}
catch(RpcException e)
{
// HTTP Status code
StatusCode statusCode = e.Status.StatusCode;
// Error message
string errorMessage = e.Status.Detail;
// Unique request identifier.
RequestInfo requestInfo = e.GetStatusDetail<RequestInfo>();
string requestId = requestInfo?.RequestId ?? "Unexpected null request identifier";
}
Tworzenie nazw zasobów
Biblioteka klienta udostępnia klasy pomocnicze do tworzenia nazw zasobów na podstawie identyfikatorów. Można je przekazywać bezpośrednio do metod usługi.
// Represents a resource name in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName name = OrderName.FromNetworkCodeOrder("123", "456");
Order response = orderServiceClient.GetOrder(name);
Konfigurowanie ustawień serwera proxy
Biblioteka klienta .NET uwzględnia właściwość HttpClient.DefaultProxy, w tym ustawianie serwerów proxy ze zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY. Więcej informacji znajdziesz w artykule na temat właściwości HttpClient.DefaultProxy.