对于想了解GoogleAppEngine频道API的读者,本文将是一篇不可错过的文章,我们将详细介绍googleplayin-appbillingapiversion,并且为您提供关于Apache下的
对于想了解Google App Engine频道API的读者,本文将是一篇不可错过的文章,我们将详细介绍google play in-app billing api version,并且为您提供关于Apache下的webapp2(=没有Google App Engine)、Google App Engine + Python中的REST API?、Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API、Google App Engine 1.4.3 发布的有价值信息。
本文目录一览:- Google App Engine频道API(google play in-app billing api version)
- Apache下的webapp2(=没有Google App Engine)
- Google App Engine + Python中的REST API?
- Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API
- Google App Engine 1.4.3 发布
Google App Engine频道API(google play in-app billing api version)
我正在尝试学习GAE的通道API(使用Java),但是我不知道从哪里开始。
我经历了Channel API
Overview(Java),但为简洁起见,此处发布的代码并不完整。
而且由于我是新手,如果可以使用完整的示例代码,这将非常有帮助。
谢谢,Shrey
答案1
小编典典您链接到的Channel API
Overview中的代码已经相当完整了,只是到处都是。我承认,一旦您理解了它,我觉得它比他们看上去的要简单得多,但是我很高兴他们犯了提供过多信息的错误。
在不增加多余信息的情况下,很难为此提供一个完整的解决方案,因为您使用Channel
API的某些方式有点取决于现有应用程序的基础结构。因此,我试图对AppEngine文档提供的内容进行详细说明,以期希望您能更好地理解。如有任何疑问,您可以通过注释提出具体问题。
首先,一些词汇:
- 频道消息: 您希望发送给客户端的消息(可能是您最初使用频道API的原因)。
- 通道密钥: 对于用户和用户试图发送消息的范围而言唯一的字符串。
- 通道令牌: 任何客户端唯一的字符串。每2小时每个客户1个渠道令牌。
- 频道服务: AppEngine服务器端类,提供了一种创建频道并通过其发送频道消息的方法。
在服务器上,您将需要执行以下操作:
ChannelService channelService = ChannelServiceFactory.getChannelService();// The channelKey can be generated in any way that you want, as long as it remains// unique to the user.String channelKey = "xyz";String token = channelService.createChannel(channelKey);
获得令牌后,您只需要一些方法即可将其获取到客户端代码。您链接到的AppEngine文档通过从Java
servlet提供HTML并调用来实现此目的index.replaceAll("\\{\\{ token \\}\\}", token)
。
他们的工作方式是将文字字符串{{ token }}
放入其JavaScript代码中(如下所示),因此,无论{{ token}}
JavaScript代码中出现的什么地方,它将被上述channelService.createChannel(...)
调用生成的实际令牌替换。请注意,您
不需要 将令牌注入以这种方式提供服务的客户端代码中,但这是一个很好的起点,因为这是他们的工作方式(并记录了下来)。
现在,您已经将令牌注入到JavaScript中,您需要将 带有通道令牌的代码获取到client 。
(请注意,如上所述,您也可以仅将令牌获得给客户端,并以此方式创建频道) 。他们拥有的代码是:
<body> <script> channel = new goog.appengine.Channel(''{{ token }}''); socket = channel.open(); socket.onopen = onOpened; socket.onmessage = onMessage; socket.onerror = onError; socket.onclose = onClose; </script></body>
他们删节了有关如何从服务器上的文件读取此内容的详细信息,但是同样,您可以按照自己喜欢的任何方式进行操作。您还可以直接resp.getWriter().print(index)
在JavaServlet中使用来打印String
,其中index
是存储上面列出的HTML /
JavaScript内容的String。就像我最初说的那样,最适合您应用程序现有基础架构的还有很多事情要做。
他们打算为你定义自己的JavaScript函数onOpened
,onMessage
,onError
,和onClose
通道被打开时调用,收到一条消息,遇到错误,或分别关闭。您可能希望仅创建幼稚的实现以更好地了解发生了什么:
function onOpened() { alert("Channel opened!");}function onMessage(msg) { alert(msg.data);}function onError(err) { alert(err);}function onClose() { alert("Channel closed!");}
我仍然建议将它们分离为单独的功能,以便您可以更轻松地扩展它们以进行试验和解决问题。有关JavaScript API的更多详细信息,请参见Channel
API JavaScript
Reference。
您需要建立一种机制来 获取要从客户端发送到服务器的数据
。再一次,您希望如何操作都无关紧要。AppEngine文档建议设置一个XMLHttpRequest
以实现此目的。
sendMessage = function(path, opt_param) { path += ''?g='' + state.game_key; if (opt_param) { path += ''&'' + opt_param; } var xhr = new XMLHttpRequest(); xhr.open(''POST'', path, true); xhr.send();};
在这里,opt_param
只是一串可选参数,格式为x=1&y=2&z=3
。这是他们为示例Tic-Tac-
Toe应用程序构建的所有基础结构,对Channel API的功能并不关键;就像我说的,您可以根据需要拨打此电话。
path
是您的Servlet的路径(您需要在web.xml文件中进行设置),该路径应该处理消息的发送和接收(请参阅以下部分)。
将消息从客户端发送到服务器后,您将需要一个servlet,该servlet可以 使用相同的通道密钥将更新发送到所有客户端 。
ChannelService channelService = ChannelServiceFactory.getChannelService();// This channelKey needs to be the same as the one in the first section above.String channelKey = "xyz"// This is what actually sends the message.channelService.sendMessage(new ChannelMessage(channelKey, "Hello World!"));
channelService.sendMessage(...)
上面的调用实际上是发送消息的方法,因此onMessage
上一节中定义的函数可以接收到该消息。
我希望这个答案足够完整(就此而言,是正确的),足以帮助您入门。他们放入文档中的大部分内容(以及我在此处的代码)都可以进行复制和粘贴,只需稍作调整即可。
Apache下的webapp2(=没有Google App Engine)
我正在尝试在Apache和mod_wsgi的Python下运行webapp2 – 具体来说:Wampserver for Windows 7 with Apache 2.2.22。 到目前为止,我失败了。
总结
以上是小编为你收集整理的Apache下的webapp2(=没有Google App Engine)全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Google App Engine + Python中的REST API?
如何通过Google App Engine和Python创建RESTful API?我已经尝试过使用Cloud
Endpoints,但是该文档并不专注于RESTful API。是否有类似于django-tastypie的GAE?
Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API
如何解决Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API?
不知道是否可以直接从应用程序停止和启动一个 Flex Google App 版本的版本?
不是由 gcloud 客户端...
显然它是通过 gcloud 命令工作的:gcloud app versions stop/start <version>
...就像在 Google Web 界面中一样...
我查看了按钮启动/停止运行良好的 Google Web 服务。请求被传递到 url :
https://console.cloud.google.com/m/operations?operationType=cloud-console.appengine.stopStartVersions&pid=<PROJECT-NAME>&hl=fr
有了这个数据:
{"pid":"<PROJECT-NAME>","serviceId":"<SERVICE-ID>","versionId":"<VERSION-ID>","serving":true,"descriptionLocalizationKey":"gaeStopStartVersions","descriptionLocalizationArgs":{"serving":"true","versionId":"<VERSION-ID>"}}
...但通过 Python API
我尝试遵循有关修补版本的文档。此代码或示例:
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
appengine = discovery.build(''appengine'',''v1'',credentials=credentials)
apps = appengine.apps()
apps.services().versions().patch(appsId=''<ID-APP>'',servicesId=''<ID-SERVICE>'',versionsId="<ID-VERSION>",body = {''servingStatus'': ''STOPPED''},updateMask=''servingStatus'').execute()
这是有效的。版本停止和实例关闭。但是,当我对 SERVING
执行相同操作时,版本会打开,但不会创建实例。
有人已经成功地做到了这一点吗?
预先感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Google App Engine 1.4.3 发布
Google 刚刚发布了Google App Engine 1.4.3,提供了对Python和Java的更多支持。
Python方面增加了一个测试库和一个实验性的Prospective Search API;Java方面增加了对并发请求的支持,以及 Remote API 和 Deferred API。Java和Python的File API都获得了更新,允许开发者使用Blobstore读写数据,对于较大的对象非常有帮助。Google还预告了将在1.4.4版本中实现的一项功能:项目开发者将能够下载已经被部署的代码。
该版本主要新亮点如下:
Python
Prospective Search API: 这个实验性的API允许Python使用者在写入数据时进行检测,一旦符合特定条件时便加以处理。
Testbed Unit Test Framework: Python 测试套件,为在整合测试中使用App Engine API 提供一个简单的接口。
Java
Concurrent Requests: 借助并发请求的支持,每个应用程序实例可在同一时间内处理多个用户的请求。
Java Remote API and Deferred API support:The Remote API 可以让您从本地机器上进行数据库操作,这对于不适合App Engine的要求/响应模式的工作非常有用。The Deferred API 可令用户更容易地编写和执行临时任务。
App Engine 1.4.3官方发布公告
下载地址:http://code.google.com/p/googleappengine/downloads/list
关于Google App Engine频道API和google play in-app billing api version的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Apache下的webapp2(=没有Google App Engine)、Google App Engine + Python中的REST API?、Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API、Google App Engine 1.4.3 发布等相关内容,可以在本站寻找。
本文标签: