我正在尝试修改“mirror-quick-start”Google Glass Mirror API 示例以响应用户“REPLY”操作。
我可以使用带有 REPLY 内置操作的示例来显示可操作的卡片。
我希望用户能够通过读取科学仪器来回复,我希望能够绘制并将卡片返回给用户。
然而,我被困在第 0 步。如何获得用户“回复”的价值。
这是我订阅时间线的尝试。我可以在我的 appengine 日志中收到“订阅”消息。
def _insert_a600_subscription(self):
"""Attempt to register to a600 updates"""
subscription = {
"collection" : 'timeline',
"userToken" : self.userid,
"callbackUrl":"https://myapp_on_appengine.appspot.com/logA600",
}
try:
self.mirror_service.subscriptions().insert(body=subscription).execute()
logging.info("SUBSCRIBED")
except errors.HttpError, error:
print 'An error occurred: %s' % e
我生成的卡片基于示例。
def _insert_item_with_action(self):
"""Insert a timeline item user can reply to."""
logging.info('Inserting timeline item')
body = {
'creator': {
'displayName': 'Python Starter Project',
'id': 'PYTHON_STARTER_PROJECT'
},
'text': 'A600 at current time:',
'id':'a600val',
'notification': {'level': 'DEFAULT'},
'menuItems': [{'action': 'REPLY',
}],
}
# self.mirror_service is initialized in util.auth_required.
self.mirror_service.timeline().insert(body=body).execute()
return 'A timeline item with action has been inserted.'
我还为 callbackUrl 端点“logA600”创建了一个“虚拟”处理程序,如下所示。
class A600Handler(webapp2.RequestHandler):
@util.auth_required
def post(self):
"""Process the value of A600 received and return a plot"""
logging.info("Received POST to logA600")
@util.auth_required
def get(self):
"""Process the value of A600 received and return a plot"""
logging.info("Received GET to this logA600")
MAIN_ROUTES = [ ('/', MainHandler),('/logA600',A600Handler), ]
当我回复时间线卡片时。我的日志从不显示接收到我的处理程序的 POST 并带有预期的消息“Received POST to logA600” ..相反,我在我的 appengine 日志中得到以下信息。
2013-07-15 19:52:43.913 /logA600 302 37ms 0kb GlassAPI
XX.XXX.XX.XX - - [15/Jul/2013:16:52:43 -0700] "POST /logA600 HTTP/1.1" 302 136 - "GlassAPI" "myapp_on_appengine.appspot.com" ms=37 cpu_ms=0 cpm_usd=0.000032 app_engine_release=1.8.2 instance=0XXXXXXXXXXXXXXXXXXXXXXXXd
I 2013-07-15 19:52:43.889
URL being requested: https://www.googleapis.com/discovery/v1/apis/mirror/v1/rest?userIp=xx.xx.xx.xxx
在我的测试应用程序中。我可以看到时间线卡成功到达。我正在寻求有关将“REPLY”通知“订阅”到我的 callbackUrl /logA600 处理程序的帮助。