0

Ich versuche, die Google-API-Client-Bibliothek in meinem Projekt zu konfigurieren. Ich habe bereits ein benutzerdefiniertes Google App-Engine-Projekt erstellt, das aus einem Cloud-Endpunkt besteht. Das Projekt heißt 'set-core', der Service heißt 'vrp API', Version 'v1' und die Methode vrp.vrp.getSolution().Setup google-api-php-client zur Kommunikation mit benutzerdefinierten Google API API Endpoint

Jetzt in meinem PHP-Code, den ich nach diesem Beispiel: https://developers.google.com/api-client-library/php/start/get_started#building-and-calling-a-service

Das Problem ist, dass in diesem Beispiel nicht erwähnt gibt es, wie in jeden benutzerdefinierten Dienst, außerhalb Googles denjenigen zu verbinden.

Mein PHP-Code ist:

$client = new Google_Client(); 
$client->setApplicationName("set-core"); 
$client->setDeveloperKey("AIzaSyByd8cRJNGYC4szFLbr3**************"); 
$client->isAppEngine(true); 

$service = new Google_Service_Appengine_Service($client); 
$results = $service->vrp->vrp.vrp.getSolution($stringVehicles, $stringServices, $stringDepot); 

leider in der letzten Zeile, PHP warnt mich:

Hinweis: Der Versuch, Eigentum von Nicht-Objekt zu bekommen (ich nehme an, es ist $ service).

Das Problem ist, dass ich nicht wirklich weiß, wie Sie alle Parameter des Clients einrichten und welchen Diensttyp verwenden.

Antwort

0

Sie möchten einen autorisierten HTTP-Client erstellen und dann Ihren API-Endpunkt direkt damit anfordern. Die AppEngine-Serviceklassen, die Sie oben bearbeiten, sind nicht für diesen Anwendungsfall vorgesehen. So etwas sollte funktionieren:

$client = new Google_Client(); 
$client->useApplicationDefaultCredentials(); 
$httpClient = $client->authorize(); 
$response = $httpClient->request('GET', 'https://myapp.appspot.com/vrp/getSolution'); 

Die $httpClient-Klasse ist eine Instanz von GuzzleHttp\Client, aber mit Ihrer Google-Authentifizierung bereits hinzugefügt. In der Dokumentation finden Sie eine Anfrage mit Guzzle.

Ich hoffe, das hilft!

+0

Wissen Sie, wie dies mit der älteren v1-Bibliothek getan werden könnte? Wir sind auf php5.3 im Moment fest ... – jonnie