我收到了facebook javascript SDK和python requesthandler變量之間的衝突結果。 Javascript SDK表示我的用戶沒有登錄,這是正確的,而來自基本請求處理程序的模板變量則表示我的用戶已登錄並顯示用戶的名稱。是否有足夠的信息來說明錯在哪裏,或者我應該粘貼我認爲與此相關的代碼?有錯誤的登錄頁面的鏈接是here。我使用的示例稱爲來自Facebook的runwithfriends演示應用程序,並且該應用程序的所有內容都可以正常工作,除了僅使用來自應用程序的應用程序的邏輯而不需要用戶位於應用程序的iframe中。爲什麼有衝突的變量?
另外我似乎無法得到實時API的工作。我只能保存用戶ID並不刷新用戶數據 - 爲什麼?我的代碼,但我不知道什麼是最相關的,但這裏的一些請求處理的,相關的代碼基本上是完全一樣的一個從演示應用程序:
def render(self, name, **data):
logging.debug('render')
"""Render a template"""
if not data:
logging.debug('no data')
data = {}
data[u'js_conf'] = json.dumps({
u'appId': facebookconf.FACEBOOK_APP_ID,
u'canvasName': facebookconf.FACEBOOK_CANVAS_NAME,
u'userIdOnServer': self.user.id if self.user else None,
})
data[u'logged_in_user'] = self.user #variable that is the problem
data[u'message'] = self.get_message()
data[u'csrf_token'] = self.csrf_token
data[u'canvas_name'] = facebookconf.FACEBOOK_CANVAS_NAME
self.response.out.write(template.render(
os.path.join(
os.path.dirname(__file__), 'templates', name + '.html'),
data))
而且更奇怪的,我也可以在JavaScript SDK說用戶已登錄並且模板變量logged_in_user
另有說明的狀態下獲取應用程序。爲什麼變量衝突? 更新:這裏是奇怪的登錄流程截圖。我可以去我的網頁,並顯示來自Facebook的我的名字: 後來,當我去到下一個頁面,它還要好吧,有我的名字 但是,如果我註銷,然後我在不可能的狀態得到:我的名字+登錄out
如何解決js和後端之間的這種奇怪衝突?
更新:由於我只有一個我的應用程序的這個問題,我可以採取什麼作品從我的其他應用程序和集成。此頁似乎從我的其他應用程序工作:http://cyberfaze.appspot.com/file/20985
有一個Facebook的python SDK的版本已被修改爲支持在github上的OAuth 2.0 [這裏](https://gist.github.com/1190267) - 對於我的用例,我不得不調整它以更好地處理超時錯誤的情況下,但它確實工作。 –