Tumblr提供了一个非常简单的界面来链接您的Twitter和Facebook帐户,以便通过他们的服务发布。我想在我的应用程序中做类似的事情 - 为人们聚合Flickr,Facebook,Twitter等不同帐户提供单点 - 我不想每年花1000美元用于Janrain的帐户映射这样做。
如何使用web2py汇总多个帐户?我有一种感觉我应该start here,但希望有更多具体的教程或最佳实践记录。
答案 0 :(得分:1)
这里我正在做的是使用我的Twitter帐户登录我的应用程序。
首先,您需要在此处签署推特应用程序并获取https://dev.twitter.com/ 和应用程序密钥,应用程序令牌等。 然后在web2py应用程序中编辑db.py文件,并确保具有以下内容:
## create all tables needed by auth if not custom tables
auth_table = db.define_table(
auth.settings.table_user_name,
Field('first_name', length=128, default=""),
Field('last_name', length=128, default=""),
Field('username', length=128, default="", unique=True),
Field('password', 'password', length=256,
readable=False, label='Password'),
Field('registration_id', length=128, default= "",
writable=False, readable=False))
auth_table.username.requires = IS_NOT_IN_DB(db, auth_table.username)
auth.define_tables()
在同一文件的底部添加:
# Twitter API
consumer_key = <your key>
consumer_secret = <your secret>
request_token_url = 'https://twitter.com/oauth/request_token'
access_token_url = 'https://twitter.com/oauth/access_token'
authorize_url = 'https://twitter.com/oauth/authorize'
import gluon.contrib.simplejson as json
class TwitterOAuth(OAuthAccount):
def get_user(self):
if self.accessToken() is not None:
client = Client(self.consumer, self.accessToken())
resp, content = client.request('http://api.twitter.com/1/account/verify_credentials.json')
if resp['status'] != '200':
# cannot get user info. should check status
return None
u = json.loads(content)
return dict(username=u['screen_name'], name=u['name'], registration_id=str(u['id']))
auth.settings.login_form=TwitterOAuth(globals(),consumer_key,consumer_secret,
authorize_url, request_token_url, access_token_url)
就是这样。
一切都很顺利
干杯