2011-12-18 13 views
3

Tumblrは、TwitterとFacebookのアカウントをリンクしてサービスを投稿するための非常にシンプルなインターフェースを提供します。私は自分のアプリケーションで同様のことをしたいと思います - Flickr、Facebook、Twitterなどの異なるアカウントを集約するための単一のポイントを提供してください - そして、私はJanrainのために年間$ 1,000を費やしたくありませんアカウントマッピングそうする。OAuth&web2pyを使用してアカウントを集計するにはどうすればよいですか?

web2pyを使用して複数のアカウントを集約してリンクする方法を教えてください。私はstart hereでなければならないと感じましたが、より具体的なチュートリアルやベストプラクティスが文書化されていることを期待していました。

答えて

1

私のTwitterアカウントを使ってアプリケーションにログインするにはどうしたらいいですか?

まず、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) 

すべては私にはうまく働いた

乾杯

関連する問題