Pour la communication de serveur à serveur (de confiance), nous vous recommandons d'utiliser des bibliothèques clientes GAPI spécifiques à chaque langage afin d'offrir une meilleure expérience que le développement sur REST ou gRPC brut. Les fichiers protobuf sur lesquels ces clients sont basés sont disponibles publiquement à l'adresse https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/delivery/v1.
Si les bibliothèques n'existent pas dans le langage de votre application, nous vous recommandons d'utiliser gRPC ou les points de terminaison RESTFleet Engine.
REMARQUE: Les bibliothèques GAPIC sont destinées à s'exécuter dans des environnements (serveurs) de confiance.
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 Auth Fleet Engine pour Java pour créer des jetons Web JSON signés dans l'environnement Java.
Vous pouvez consulter des exemples d'interaction avec l'API Fleet Engine en Java 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
Consultez https://packagist.org/packages/google/maps-fleetengine-delivery.
Ruby
Consultez la page https://rubygems.org/gems/google-maps-fleet_engine-delivery.