OAuth&web2pyを使用してアカウントを集計するにはどうすればよいですか?

Tumblrは、TwitterとFacebookのアカウントをリンクしてサービスを投稿するための非常にシンプルなインターフェースを提供します。私のアプリケーションでは、Flickr、Facebook、Twitterなどの異なるアカウントを集約するための単一のポイントを提供したいと思います。私はJanrainの Account Mappingに年間$ 1,000を費やしたくありません。 これを行うには

How do I link multiple accounts in aggregate using web2py? I have a feeling I should start here, but was hoping there were more concrete tutorials or best practices documented.

3

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 = 
consumer_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)

それで全部です。

すべてがうまく働いた

乾杯

1
追加された