2016-12-24 3 views
1

Ich habe einen Google API-Schlüssel, den ich verwende und der für Google Maps gut funktioniert. Ich versuche jetzt, die Google Maps Distance Matrix-API mit meiner Android-App zu verwenden, und ich kann sie nur nutzen, wenn ich meinen Schlüssel nicht auf meine Android-App beschränke. Sobald ich den Schlüssel auf mein Paket und den SHA1-Fingerabdruck beschränke, funktioniert es nicht mehr. Ich habe den Paketnamen aus dem AndroidManifest überprüft und sichergestellt, dass ich den richtigen Keystore & Alias-Kombination verwende, aber es scheint nicht wichtig zu sein. Kann ich noch etwas nachsehen?Sobald ich meinen Google API-Schlüssel eingeschränkt habe, funktioniert er nicht mehr.

+0

Ich sehe nicht, wie diese bestimmte API auf Mobile ähnlich wie das Hauptprodukt Google Maps für Android funktioniert. Haben Sie versucht, den API-Endpunkt über HTTP/JSON mit einem bestimmten Schlüssel aufzurufen? –

+0

funktioniert nicht mehr was? Wie lautet die Antwort, die Sie erhalten? –

+0

Es tut mir leid, ich versuche, denselben Freigabeschlüssel zu verwenden, den ich für meinen Google Maps-Schlüssel verwende. Ich habe versucht, einen neuen Schlüssel zu verwenden, aber es ist das gleiche Ergebnis wie ich beschrieben habe. Google Maps API funktioniert einwandfrei, diese neue Funktion mit der Distanzmatrix-API funktioniert nicht. Ergebnis ist ein leerer Datensatz in Mobile. Kann nicht mit Postman testen, weil es auf Android beschränkt ist und ich die entsprechende Nachricht in der Antwort dort bekomme. Ich kann nicht herausfinden, warum die Antwort auf Android leer ist. Der Code funktioniert, wenn derselbe Schlüssel nicht eingeschränkt ist. – Barodapride

Antwort

2

Bitte beachten Sie, dass die Beschränkung für Android-Apps nur für Google Maps Android API v2 und Google Maps Places für Android gilt. Webdienste (z. B. Distance Matrix API) funktionieren mit dieser Einschränkung nicht.

Die Einschränkungen, die mit einem API-Schlüssel für Webdienste funktionieren, sind IP-Einschränkungen.

Es wird angenommen, dass Web-Service-Anfragen auf Ihren Backend-Servern ausgeführt werden. Wenn Sie einen API-Schlüssel einschränken müssen, besteht die Problemumgehung darin, einen Zwischenserver zu erstellen. Ihre Android-Anwendung sollte Anfragen an den Zwischenserver senden, Zwischenserver sollten Anfragen an Google senden und Antworten an Ihre App zurückgeben. In diesem Fall können Sie einen API-Schlüssel anhand der IP-Adresse Ihres Zwischenservers einschränken.

Verwandte Themen