Pour une communication de serveur à serveur (approuvée), nous vous recommandons d'utiliser des bibliothèques clientes GAPI spécifiques à un langage pour bénéficier d'une meilleure expérience que le développement à l'aide de REST ou gRPC brut. Les fichiers tampons de protocole sur lesquels ces clients sont basés sont accessibles au public à l'adresse https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/delivery/v1.
Si des bibliothèques n'existent pas dans le langage de votre application, nous vous recommandons d'utiliser gRPC ou les points de terminaison REST Fleet Engine.
REMARQUE: Les bibliothèques GAPIC sont destinées à être exécutées dans des environnements (serveur) approuvés.
Les jetons JWT ne sont pas nécessaires. Utilisez les identifiants par défaut de l'application avec le rôle deliveryAdmin
approprié.
Java
Les bibliothèques Java sont publiées sous google.maps.fleetengine.delivery.v1
.
Gradle
plugins {
id "maven-publish"
id "com.google.cloud.artifactregistry.gradle-plugin" version "2.1.4"
}
publishing {
repositories {
maven {
url "artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven"
}
}
}
repositories {
maven {
url "artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven"
}
}
dependencies {
implementation 'com.google.maps:gapic-google-maps-fleetengine-delivery-v1-java:latest.release'
}
Maven
<project>
<distributionManagement>
<snapshotRepository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
</snapshotRepository>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
</repository>
</distributionManagement>
<repositories>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/fleetengine-gapic/maven</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<extensions>
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.1.4</version>
</extension>
</extensions>
</build>
<dependency>
<groupId>com.google.maps</groupId>
<artifactId>gapic-google-maps-fleetengine-delivery-v1-java</artifactId>
<version>LATEST</version>
</dependency>
</project>
Vous pouvez utiliser la bibliothèque d'authentification Fleet Engine pour Java afin de créer des jetons Web JSON signés dans l'environnement Java.
Vous pouvez consulter des exemples Java pour interagir avec l'API Fleet Engine sur la page Premiers pas avec Fleet Engine.
Node.js / TypeScript
npm
Vous pouvez spécifier l'URL de la bibliothèque dans la section dependencies
du fichier package.json
:
{
"dependencies": {
"@googlemaps/fleetengine-delivery": "https://storage.googleapis.com/fleetengine-gapic/dist/latest_release/maps-fleetengine-delivery-v1-nodejs.tar.gz",
"google-auth-library": "^9.2.0",
"googleapis": "^118.0.0"
}
}
Exemple de code :
const {google} = require('googleapis');
const fleetengine = require('@googlemaps/fleetengine-delivery');
const {GoogleAuth} = require('google-auth-library');
// CONSTANTS
const PROJECT_ID = 'YOUR_GCP_PROJECT_NAME';
const VEHICLE_ID = 'YOUR_VEHICLE_ID';
const SERVICE_ACCOUNT = 'YOUR_SERVICE_ACCOUNT';
const SERVICE_ACCOUNT_EMAIL = `${SERVICE_ACCOUNT}@${PROJECT_ID}.iam.gserviceaccount.com`;
// CREATE A JWT FOR AUTHENTICATION
const HOWLONG = 55 * 60; // 55 minutes, cannot be more than 60 minutes
async function signToken(claims) {
const googleAuth = new google.auth.GoogleAuth({
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
});
const authClient = await googleAuth.getClient();
google.options({auth: authClient});
const now = Math.round(Date.now() / 1000);
const iat = now - 300;
const exp = now + HOWLONG;
const request = {
name: `projects/-/serviceAccounts/${SERVICE_ACCOUNT_EMAIL}`,
requestBody: {
payload: JSON.stringify({
iss: SERVICE_ACCOUNT_EMAIL,
sub: SERVICE_ACCOUNT_EMAIL,
aud: 'https://fleetengine.googleapis.com/',
iat: iat,
exp: exp,
authorization: claims
}),
}
};
const response = await google.iamcredentials('v1').projects.serviceAccounts
.signJwt(request)
.catch((err) => {
if (err.errors) throw err.errors;
else throw err;
});
return response.data.signedJwt;
}
// MAKE A REQUEST
async function main() {
const claims = {
deliveryvehicleid: VEHICLE_ID
};
signToken(claims).then(token => {
let auth = new GoogleAuth();
auth.cachedCredential = new AuthorizationHeaderProvider(token);
const client = new fleetengine.DeliveryServiceClient({ auth: auth });
client.getDeliveryVehicle({name: `providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}`}).then(function(resp) {
console.log(resp);
}, function(err) {
console.log(err);
});
});
}
class AuthorizationHeaderProvider {
constructor(token) {
this.token = token;
}
getRequestMetadata(url, callback) {
callback(null, {'authorization': `Bearer ${this.token}`});
}
}
main().catch(console.error);
Go
La bibliothèque Go est empaquetée sous forme de module à l'adresse https://pkg.go.dev/cloud.google.com/go/maps.
Python
Consultez la page https://pypi.org/project/google-maps-fleetengine-delivery/0.1.0/
pip
pip install google-auth
pip install google-maps-fleetengine-delivery
C#
Les instructions d'installation de la bibliothèque C# sont disponibles à l'adresse https://www.nuget.org/packages/Google.Maps.FleetEngine.Delivery.V1.
PHP
La bibliothèque PHP peut être téléchargée à l'adresse suivante : https://storage.googleapis.com/fleetengine-gapic/dist/latest_release/google-maps-fleetengine-delivery-v1-php.tar.gz
Ruby
Consultez la page https://rubygems.org/gems/google-maps-fleet_engine-delivery.