بالنسبة إلى الاتصال من خادم إلى خادم (موثوق به)، ننصح باستخدام مكتبات عميل GAPI الخاصة بكل لغة للحصول على تجربة أفضل من التطوير عبر REST أو gRPC غير معدَّل. وتتوفّر ملفات النموذج الأوّلي التي يستند إليها هؤلاء العملاء للجميع على https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/delivery/v1.
إذا لم تكن المكتبات متوفّرة بلغة تطبيقك، ننصحك باستخدام نقطة نهاية Fleet Engine REST.
ملاحظة: تم تصميم مكتبات GAPIC للتشغيل في بيئات (خادم) موثوق بها.
ملفات JWT غير ضرورية. يمكنك استخدام بيانات الاعتماد التلقائية للتطبيق إلى جانب
دور deliveryAdmin
المناسب.
Java
يتم نشر مكتبات Java ضمن 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>
يمكنك استخدام مكتبة مصادقة Fleet Engine للغة Java لإنشاء رموز ويب مميزة بتنسيق JSON موقّع داخل بيئة Java.
يمكنك عرض أمثلة Java للتفاعل مع Fleet Engine API في صفحة بدء استخدام Fleet Engine.
Node.js / TypeScript
npm
يمكنك تحديد عنوان URL للمكتبة في القسم dependencies
من 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"
}
}
نموذج التعليمات البرمجية:
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 كوحدة على الرابط https://pkg.go.dev/cloud.google.com/go/maps
Python
راجِع https://pypi.org/project/google-maps-fleetengine-delivery/0.1.0/.
pip
pip install google-auth
pip install google-maps-fleetengine-delivery
C#
ويمكن العثور على تعليمات تثبيت مكتبة C# على الرابط https://www.nuget.org/packages/Google.Maps.FleetEngine.Delivery.V1.
PHP
ويمكنك تنزيل مكتبة لغة PHP من خلال الرابط التالي: https://storage.googleapis.com/fleetengine-gapic/dist/latest_release/google-maps-fleetengine-delivery-v1-php.tar.gz
Ruby
يمكنك الاطّلاع على https://rubygems.org/gems/google-maps-fleet_engine-delivery.