Запросы к API Google Кошелька должны пройти аутентификацию, чтобы API Кошелька мог определить, что запрос выполняется вашим приложением.
Прежде чем начать, убедитесь, что вы правильно сгенерировали и зарегистрировали свои учетные данные для REST API Google Кошелька и Google Wallet Android SDK .
Запросы REST API Google Кошелька
Запрос к REST API Google Кошелька аутентифицируется с использованием ключа учетной записи службы Google Cloud REST API Google Кошелька для получения токена доступа.
Клиентские библиотеки Google API обрабатывают аутентификацию и выполнение запросов API. Обязательно установите библиотеку для предпочитаемого вами языка программирования, который используется в следующих примерах.
Сначала выполните необходимый импорт библиотеки и определите некоторые переменные для JSON учетной записи службы, а также идентификаторы издателя, класса, уникального пользователя и объекта, который будет сохранен.
Ява
Чтобы начать интеграцию с Java, ознакомьтесь с нашими полными примерами кода на GitHub .
import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import com.google.api.client.googleapis.batch.BatchRequest; import com.google.api.client.googleapis.batch.json.JsonBatchCallback; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.googleapis.json.GoogleJsonError; import com.google.api.client.googleapis.json.GoogleJsonResponseException; import com.google.api.client.http.*; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.walletobjects.*; import com.google.api.services.walletobjects.model.*; import com.google.auth.http.HttpCredentialsAdapter; import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.ServiceAccountCredentials; import java.io.*; import java.security.interfaces.RSAPrivateKey; import java.util.*; /** Demo class for creating and managing Event tickets in Google Wallet. */ public class DemoEventTicket { /** * Path to service account key file from Google Cloud Console. Environment variable: * GOOGLE_APPLICATION_CREDENTIALS. */ public static String keyFilePath; /** Service account credentials for Google Wallet APIs. */ public static GoogleCredentials credentials; /** Google Wallet service client. */ public static Walletobjects service; public DemoEventTicket() throws Exception { keyFilePath = System.getenv().getOrDefault("GOOGLE_APPLICATION_CREDENTIALS", "/path/to/key.json"); auth(); }
PHP
Чтобы начать интеграцию с PHP, ознакомьтесь с нашими полными примерами кода на GitHub .
use Firebase\JWT\JWT; use Google\Auth\Credentials\ServiceAccountCredentials; use Google\Client as GoogleClient; use Google\Service\Walletobjects; use Google\Service\Walletobjects\EventSeat; use Google\Service\Walletobjects\LatLongPoint; use Google\Service\Walletobjects\Barcode; use Google\Service\Walletobjects\ImageModuleData; use Google\Service\Walletobjects\LinksModuleData; use Google\Service\Walletobjects\TextModuleData; use Google\Service\Walletobjects\ImageUri; use Google\Service\Walletobjects\Image; use Google\Service\Walletobjects\EventTicketObject; use Google\Service\Walletobjects\Message; use Google\Service\Walletobjects\AddMessageRequest; use Google\Service\Walletobjects\Uri; use Google\Service\Walletobjects\TranslatedString; use Google\Service\Walletobjects\LocalizedString; use Google\Service\Walletobjects\EventTicketClass; /** Demo class for creating and managing Event tickets in Google Wallet. */ class DemoEventTicket { /** * The Google API Client * https://github.com/google/google-api-php-client */ public GoogleClient $client; /** * Path to service account key file from Google Cloud Console. Environment * variable: GOOGLE_APPLICATION_CREDENTIALS. */ public string $keyFilePath; /** * Service account credentials for Google Wallet APIs. */ public ServiceAccountCredentials $credentials; /** * Google Wallet service client. */ public Walletobjects $service; public function __construct() { $this->keyFilePath = getenv('GOOGLE_APPLICATION_CREDENTIALS') ?: '/path/to/key.json'; $this->auth(); }
Питон
Чтобы начать интеграцию с Python, ознакомьтесь с полными примерами кода на GitHub .
import json import os import uuid from googleapiclient.discovery import build from googleapiclient.errors import HttpError from google.oauth2.service_account import Credentials from google.auth import jwt, crypt class DemoEventTicket: """Demo class for creating and managing Event tickets in Google Wallet. Attributes: key_file_path: Path to service account key file from Google Cloud Console. Environment variable: GOOGLE_APPLICATION_CREDENTIALS. base_url: Base URL for Google Wallet API requests. """ def __init__(self): self.key_file_path = os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', '/path/to/key.json') # Set up authenticated client self.auth()
С#
Чтобы начать интеграцию с C#, ознакомьтесь с полными примерами кода на GitHub .
using System.IdentityModel.Tokens.Jwt; using System.Net.Http.Headers; using System.Text.RegularExpressions; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using Google.Apis.Walletobjects.v1; using Google.Apis.Walletobjects.v1.Data; using Microsoft.IdentityModel.Tokens; using Newtonsoft.Json; using Newtonsoft.Json.Linq; /// <summary> /// Demo class for creating and managing Event tickets in Google Wallet. /// </summary> class DemoEventTicket { /// <summary> /// Path to service account key file from Google Cloud Console. Environment /// variable: GOOGLE_APPLICATION_CREDENTIALS. /// </summary> public static string keyFilePath; /// <summary> /// Service account credentials for Google Wallet APIs /// </summary> public static ServiceAccountCredential credentials; /// <summary> /// Google Wallet service client /// </summary> public static WalletobjectsService service; public DemoEventTicket() { keyFilePath = Environment.GetEnvironmentVariable( "GOOGLE_APPLICATION_CREDENTIALS") ?? "/path/to/key.json"; Auth(); }
Node.js
Чтобы начать интеграцию в Node, ознакомьтесь с полными примерами кода на GitHub .
const { google } = require('googleapis'); const jwt = require('jsonwebtoken'); const { v4: uuidv4 } = require('uuid'); /** * Demo class for creating and managing Event tickets in Google Wallet. */ class DemoEventTicket { constructor() { /** * Path to service account key file from Google Cloud Console. Environment * variable: GOOGLE_APPLICATION_CREDENTIALS. */ this.keyFilePath = process.env.GOOGLE_APPLICATION_CREDENTIALS || '/path/to/key.json'; this.auth(); }
Идти
Чтобы начать интеграцию в Go, ознакомьтесь с нашими полными примерами кода на GitHub. Примеры кода на Github .
package main import ( "bytes" "context" "encoding/json" "fmt" "github.com/golang-jwt/jwt" "github.com/google/uuid" "golang.org/x/oauth2" "golang.org/x/oauth2/google" oauthJwt "golang.org/x/oauth2/jwt" "google.golang.org/api/option" "google.golang.org/api/walletobjects/v1" "io" "log" "os" "strings" )
Затем используйте одну из библиотек платформы, чтобы получить необходимые учетные данные для вызова API Google Кошелька.
Ява
Чтобы начать интеграцию с Java, ознакомьтесь с нашими полными примерами кода на GitHub .
/** * Create authenticated HTTP client using a service account file. * */ public void auth() throws Exception { credentials = GoogleCredentials.fromStream(new FileInputStream(keyFilePath)) .createScoped(List.of(WalletobjectsScopes.WALLET_OBJECT_ISSUER)); credentials.refresh(); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); // Initialize Google Wallet API service service = new Walletobjects.Builder( httpTransport, GsonFactory.getDefaultInstance(), new HttpCredentialsAdapter(credentials)) .setApplicationName("APPLICATION_NAME") .build(); }
PHP
Чтобы начать интеграцию с PHP, ознакомьтесь с нашими полными примерами кода на GitHub .
/** * Create authenticated HTTP client using a service account file. */ public function auth() { $this->credentials = new ServiceAccountCredentials( Walletobjects::WALLET_OBJECT_ISSUER, $this->keyFilePath ); // Initialize Google Wallet API service $this->client = new GoogleClient(); $this->client->setApplicationName('APPLICATION_NAME'); $this->client->setScopes(Walletobjects::WALLET_OBJECT_ISSUER); $this->client->setAuthConfig($this->keyFilePath); $this->service = new Walletobjects($this->client); }
Питон
Чтобы начать интеграцию с Python, ознакомьтесь с полными примерами кода на GitHub .
def auth(self): """Create authenticated HTTP client using a service account file.""" self.credentials = Credentials.from_service_account_file( self.key_file_path, scopes=['https://www.googleapis.com/auth/wallet_object.issuer']) self.client = build('walletobjects', 'v1', credentials=self.credentials)
С#
Чтобы начать интеграцию с C#, ознакомьтесь с полными примерами кода на GitHub .
/// <summary> /// Create authenticated service client using a service account file. /// </summary> public void Auth() { credentials = (ServiceAccountCredential)GoogleCredential .FromFile(keyFilePath) .CreateScoped(new List<string> { WalletobjectsService.ScopeConstants.WalletObjectIssuer }) .UnderlyingCredential; service = new WalletobjectsService( new BaseClientService.Initializer() { HttpClientInitializer = credentials }); }
Node.js
Чтобы начать интеграцию в Node, ознакомьтесь с полными примерами кода на GitHub .
/** * Create authenticated HTTP client using a service account file. */ auth() { const auth = new google.auth.GoogleAuth({ keyFile: this.keyFilePath, scopes: ['https://www.googleapis.com/auth/wallet_object.issuer'], }); this.credentials = require(this.keyFilePath); this.client = google.walletobjects({ version: 'v1', auth: auth, }); }
Идти
Чтобы начать интеграцию в Go, ознакомьтесь с нашими полными примерами кода на GitHub. Примеры кода на Github .
// Create authenticated HTTP client using a service account file. func (d *demoEventticket) auth() { credentialsFile := os.Getenv("GOOGLE_APPLICATION_CREDENTIALS") b, _ := os.ReadFile(credentialsFile) credentials, err := google.JWTConfigFromJSON(b, walletobjects.WalletObjectIssuerScope) if err != nil { fmt.Println(err) log.Fatalf("Unable to load credentials: %v", err) } d.credentials = credentials d.service, _ = walletobjects.NewService(context.Background(), option.WithCredentialsFile(credentialsFile)) }
Запросы Google Wallet Android SDK
Запросы с использованием Google Wallet Android SDK автоматически аутентифицируются с использованием сертификата подписи приложения. Android SDK автоматически создаст отпечаток SHA-1 вашего сертификата подписи и включит его в запросы к API Google Кошелька.
Дополнительную информацию о создании и регистрации отпечатка SHA-1 сертификата подписи приложения см. в разделе Авторизация приложения для Google Wallet Android SDK .