हमारा सुझाव है कि सर्वर-टू-सर्वर (भरोसेमंद) कम्यूनिकेशन के लिए, भाषा के हिसाब से GAPI क्लाइंट लाइब्रेरी का इस्तेमाल करें. इससे REST या जीआरपीसी पर डेवलप करने के बजाय, बेहतर अनुभव मिलता है. इन क्लाइंट के आधार पर बनाई गई प्रोटोबफ़ फ़ाइलें सार्वजनिक तौर पर https://github.com/googleapis/googleapis/tree/master/google/maps/fleetengine/v1 पर उपलब्ध हैं.
अगर आपके ऐप्लिकेशन की भाषा में लाइब्रेरी मौजूद नहीं हैं, तो हमारा सुझाव है कि gRPC या Fleet Engine REST एंडपॉइंट का इस्तेमाल करें.
ध्यान दें: GAPIC लाइब्रेरी को भरोसेमंद (सर्वर) एनवायरमेंट में चलाया जाता है.
JWTs ज़रूरी नहीं हैं. ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के साथ-साथ, ondemandAdmin
की सही भूमिका का इस्तेमाल करें.
Java
Java लाइब्रेरी, google.maps.fleetengine.v1
के तहत पब्लिश की जाती हैं.
ग्रेडल
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>
Java एनवायरमेंट में साइन किए गए JSON वेब टोकन बनाने के लिए, Java के लिए फ़्लीट इंजन ऑथ लाइब्रेरी का इस्तेमाल किया जा सकता है.
फ़्लीट इंजन एपीआई के साथ इंटरैक्ट करने के लिए, Java के उदाहरण देखने के लिए, Fleet Engine का इस्तेमाल करना पेज पर जाएं.
Node.js / TypeScript
एनपीएम
package.json
के dependencies
सेक्शन में, लाइब्रेरी का यूआरएल बताया जा सकता है:
{
"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 लाइब्रेरी को 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 देखें.