所以我的想法非常简单。但我不知道从哪里开始。
使用简单的webapp框架在我的应用引擎服务器上开发一个简单的RESTful API。
会有两种客户:
1.普通的PC用户访问facebook应用程序,这将直接将API调用发送到我的app引擎服务器。
(请注意,facebook应用程序本身托管在同一个应用程序引擎服务器上)
所以我如何在http://code.google.com/p/app3/检查App3项目,然后没有真正的身份验证。
有任何建议/想法吗?
我对流程如何工作有一个大概的了解
假设:我的数据存储区都设置了用户数据。
对于访问我的FB应用的普通PC用户: - >在FB中进行身份验证 - >我使用gmemsess保存他们的用户ID + facebook_session_key - >我使用这两个数据来验证数据存储区中的用户数据 - >该用户现在可以在我的服务器上免费使用CRUD。
对于iphone用户来说,这是一样的流程。但是使用Facebook Connect。
CRUD应该类似于: 如果用户想要检查他/她的统计数据,API调用将是这样的: /休息/ getstats
有人真的这样做吗?我很欣赏每个人的见解。 一个简单,无障碍的解决方案将是非常棒的!
答案 0 :(得分:3)
嗯,这可能不是你一直在寻找的,但这是我的尝试:
要在应用引擎上执行简单的REST,您可以尝试使用Jim Fulton的优秀库bobo
(这里是link to the REST section of the documentation)。 Bobo是一个经过良好测试的简单软件包,只包含一个fily,bobo.py,因此它非常适合简约应用程序的需求。你可以简单地把它放在webapp上。
请注意,文档中显示的装饰器需要转换为python2.5样式才能工作,所以
@bobo.resource('/rest/getstats', 'GET')
def get_stats(self, request):
"Get user's stats"
会变成
def get_stats(self, request):
"Get user's stats"
get_stats = bobo.resource('/rest/getstats', 'GET')(get_stats)
等。这应该是一种简单的REST方法。
对于身份验证,您可以将repoze.who传递到WSGI管道中。有一些非常简单的repoze.who插件为facebook API在野外(不幸的是没有在pypi上),我为一个简单的Facebook应用程序前一段时间写了一个非常简单的。您可以查看here,以及简短的wiki和一些依赖图,这些图可能有助于保持您的应用轻量级和内存效率。 (请注意那里的依赖关系图:从那时起,一些Zope库已被简化;要使用Facebook身份验证,你只需要zope.interface。)
也许我没有真正给你任何特定的(或有用的),但这些只是你可以看一下的几个链接,它们可能派上用场。