Subskriptions-Handling-Komplexität

Ich erstelle eine Google-Glas-App mit benutzerdefinierten Menü mit Spiegel-API. Aber wenn ich auf das Menü klicke, wird ein Synchronisierungssymbol über dem Timeline-Element angezeigt und die Timeline wird zur ersten Position meiner App.

Aber ich kann das Click-Ereignis des Menüs nicht von meinem Benachrichtigungs-Servlet abrufen. Und der Redirect Uri sind:

http://localhost:8080/oauth2callback
http://localhost:8080
https://mirrornotifications.appspot.com/forward?url=http://localhost:8080/notify   

Wie kann ich es lösen?

0

2 Antworten

Ich denke, du mischt hier zwei verschiedene Konzepte.

Die Weiterleitungs-URLs werden im Rahmen des OAuth-Tanzes verwendet und sind nur als Teil eines Nutzers für Ihre Glassware wichtig, der sich für Ihren Dienst authentifiziert.

Sie müssen jedoch auch Benachrichtigungen abonnieren, um Informationen zu den Menübefehlen zu erhalten. Dies geschieht nicht über die API-Konsole, sondern Sie müssen stattdessen den Befehl subscriptions.insert ausführen, wie in https://developers.google.com/glass/v1/reference/subscriptions/insert . Ihre Glassware muss dies jedoch nur einmal tun, obwohl sie möglicherweise Abonnements aktualisieren möchte.

0
hinzugefügt

Timeline subscriptions will not work with localhost — the callback URLs must be to a server that is publicly visible to the Mirror API servers that are pushing the notifications and must also support SSL.

Um Abonnements in der Entwicklung zu testen, haben Sie ein paar Optionen:

  1. Bereitstellung auf einem Staging-Server
  2. Probieren Sie eine der wenigen verfügbaren localhost-Proxies aus
  3. Verwenden Sie curl wie in diesem Beitrag um die Notification-Payload manuell an Ihre Rückruf-URL zu senden

Ich habe während meiner eigenen Entwicklung festgestellt, dass # 3 am einfachsten ist, aber wenn Ihre Anwendung komplexer wird, sollten Sie sich die anderen Möglichkeiten ansehen.

0
hinzugefügt
Für das Bild verwende ich den öffentlichen Server, da das Image nicht vom lokalen Host geladen werden kann. Und für das Abonnement verwende ich Google Proxy-Server. aber ich erhalte kein Ereignis von meiner Benachrichtigungsklasse.
hinzugefügt der Autor Moddasir Khan Rushdi, Quelle
es ist danke.
hinzugefügt der Autor Moddasir Khan Rushdi, Quelle
Der Versuch, den Proxy-Server von Google zu verwenden, wie das Beispiel, das Sie in Ihrer Frage angegeben haben, funktioniert nicht mit localhost, da localhost nicht auf Ihren Rechner verweist, wenn die Anfrage vom Proxy-Server kommt. Die URL, die Sie dem Proxy geben, muss etwas sein, auf das er zugreifen kann.
hinzugefügt der Autor Tony Allevato, Quelle