สำหรับการสื่อสารระหว่างเซิร์ฟเวอร์ (ที่เชื่อถือได้) เราขอแนะนำให้ใช้ไลบรารีของไคลเอ็นต์ GAPI สำหรับแต่ละภาษาเพื่อประสบการณ์การใช้งานที่ดีกว่าการพัฒนาผ่าน REST หรือ gRPC ที่เป็นข้อมูลดิบ ไฟล์ Protobuf ที่ไคลเอ็นต์เหล่านี้สร้างขึ้น มีการเผยแพร่แบบสาธารณะที่ https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/v1
หากไม่มีไลบรารีในภาษาของแอปพลิเคชัน เราขอแนะนำให้ใช้ปลายทาง gRPC หรือ Fleet Engine REST
หมายเหตุ: ไลบรารี GAPIC มีไว้เพื่อเรียกใช้ในสภาพแวดล้อม (เซิร์ฟเวอร์) ที่เชื่อถือได้
JWT เป็นตัวเลือกที่ไม่จำเป็น ใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันร่วมกับบทบาท ondemandAdmin
ที่เหมาะสม
Java
ไลบรารี Java เผยแพร่ภายใต้ google.maps.fleetengine.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-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-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": "https://storage.googleapis.com/fleetengine-gapic/dist/latest_release/maps-fleetengine-v1-nodejs.tar.gz",
"google-auth-library": "^9.2.0",
"googleapis": "^118.0.0"
}
}
โค้ดตัวอย่าง
const {google} = require('googleapis');
const fleetengine = require('@googlemaps/fleetengine');
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 = {
vehicleid: VEHICLE_ID
};
signToken(claims).then(token => {
let auth = new GoogleAuth();
auth.cachedCredential = new AuthorizationHeaderProvider(token);
const client = new fleetengine.VehicleServiceClient({ auth: auth });
client.getVehicle({name: `providers/${PROJECT_ID}/vehicles/${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
ไลบรารี Go ได้รับการรวมเป็นโมดูลที่ https://pkg.go.dev/maps/fleetengine/v1
package main
import (
"context"
"fmt"
"log"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
fleetengine "google.golang.org/maps/fleetengine/v1"
pb "google.golang.org/genproto/googleapis/maps/fleetengine/v1"
)
func main() {
// Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to a credential configuration file.
// https://cloud.google.com/docs/authentication/application-default-credentials#GAC
provider := "cabrio-1501793433270"
ctx := context.Background()
vc, err := fleetengine.NewVehicleClient(ctx,
option.WithQuotaProject(provider),
option.WithScopes("https://www.googleapis.com/auth/cloud-platform"),
)
if err != nil {
log.Fatalf("Couldn't connect: %v", err)
}
i := vc.ListVehicles(ctx, &pb.ListVehiclesRequest{
// NB: PageSize determines how many resources each call to the underlying
// List method returns, not how many values the Iterator will go through.
// The Iterator will continue making List calls until it exhausts
// `nextPageToken`.
PageSize: 10,
Parent: "providers/" + provider,
})
for {
v, err := i.Next()
if err == iterator.Done {
break
}
if err != nil {
log.Fatalf("Couldn't connect: %v", err)
}
fmt.Println(v)
}
}
Python
โปรดดู https://pypi.org/project/google-maps-fleetengine/0.1.0/
pip
pip install google-auth
pip install google-maps-fleetengine
โค้ดตัวอย่าง
from google.maps import fleetengine_v1
import google.auth
from google.auth import jwt, iam
from google.auth.transport import requests
# CONSTANTS
PROJECT_ID = 'YOUR_GCP_PROJECT_NAME'
VEHICLE_ID = 'YOUR_VEHICLE_ID'
SERVICE_ACCOUNT = f'YOUR_SERVICE_ACCOUNT@{PROJECT_ID}.iam.gserviceaccount.com'
# CREATE A JWT FOR AUTHENTICATION
credentials, _ = google.auth.default(scopes=['https://www.googleapis.com/auth/iam'])
signer = iam.Signer(requests.Request(), credentials, SERVICE_ACCOUNT)
jwt_credentials = jwt.Credentials(
signer,
issuer=SERVICE_ACCOUNT,
subject=SERVICE_ACCOUNT,
audience='https://fleetengine.googleapis.com/',
additional_claims={
"authorization": {
"vehicleid" : VEHICLE_ID
}
}
)
# MAKE A REQUEST
maps_fleetengine_client = fleetengine_v1.VehicleServiceClient(credentials=jwt_credentials)
request = fleetengine_v1.GetVehicleRequest(name=f'providers/{PROJECT_ID}/vehicles/{VEHICLE_ID}')
response = maps_fleetengine_client.get_vehicle(request=request)
C#
ดูคำแนะนำในการติดตั้งไลบรารี C# ได้ที่ https://www.nuget.org/packages/Google.Maps.FleetEngine.V1
PHP
ดู https://packagist.org/packages/google/maps-fleetengine