我想在我的Flask/Python應用程序中執行的操作與我在PHP中完成的操作類似。在PHP中,我能夠創建一個新的Facebook對象,如果用戶已經授權應用程序並已登錄到他們的Facebook帳戶,他們的信息將被加載到對象中,他們不必點擊「登錄與Facebook「在網站上 - 它會自動意識到他們已經登錄和授權。Python - Facebook全球登錄
隨着我的Python應用程序,我使用https://github.com/pythonforfacebook/facebook-sdk/
@app.route('/login')
def login():
return facebook.authorize(callback=url_for('facebook_authorized',
next=request.args.get('next') or request.referrer or None,
_external=True))
@app.route('/login/authorized')
@facebook.authorized_handler
def facebook_authorized(resp):
if resp is None:
return 'Access denied: reason=%s error=%s' % (
request.args['error_reason'],
request.args['error_description']
)
session['oauth_token'] = (resp['access_token'], '')
me = facebook.get('/me')
usr = Users.query.filter_by(fb_id=me.data['id']).first()
if (hasattr(usr, 'fb_id'))==False:
# Find them in our database and log them in
else:
# Sign them up
return redirect(url_for('home'))
有沒有一種方法,我可以將它設置,以便我對象可以在整個這樣的應用程序,允許自動登錄作爲我能在頁面加載時執行此步驟而無需用戶訪問登錄URL?
此刻,用戶必須訪問/登錄才能檢索他們的Facebook信息。是否有可能在PHP中這樣做,它可以是整個腳本中使用的變量? - 對不起聽起來多餘,我不知道如何解釋清楚。
在PHP中,一些示例代碼如下所示 - 這將在每次頁面加載時調用,而不需要用戶訪問/ login URL以使用他們的Facebook登錄。
<?php
if(!$this->getUser()){
$facebook = new Facebook(array(
'appId' => '',
'secret' => '',
));
$this->fbuser = $facebook->getUser();
if ($this->fbuser) {
# etc..
?>