如果是伺服器對伺服器 (可信任的) 通訊,建議您使用特定語言專用的 GAPI 用戶端程式庫,以便獲得比透過原始 REST 或 gRPC 開發更好的體驗。這些用戶端建構的 protobuf 檔案可公開取得,網址為 https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/delivery/v1。
如果應用程式語言中沒有程式庫,建議您使用 gRPC 或 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>
您可以使用 Java 適用的 Fleet Engine 驗證程式庫,在 Java 環境中建立已簽署的 JSON 網路權杖。
您可以在開始使用 Fleet Engine 頁面,查看與 Fleet Engine API 互動的 Java 範例。
Node.js / TypeScript
npm
您可在 package.json
的 dependencies
區段中指定程式庫網址:
{
"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#
您可以在 https://www.nuget.org/packages/Google.Maps.FleetEngine.Delivery.V1 中找到 C# 程式庫的安裝操作說明。
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。