2013-03-05 38 views
-2

我使用Facebook的蟒蛇SDK来获取用户的电子邮件Facebook的用户我蟒蛇

import facebook as facebooksd 
cookie = facebooksd.get_user_from_cookie(self.request.cookies, 
    FACEBOOK_APP_ID, FACEBOOK_APP_SECRET) 
graph = facebooksd.GraphAPI(cookie["access_token"]) 
current_user = graph.get_object("me") 

不幸的是,我碰到下面的错误与上面的代码:

global name 'self' is not defined 

如何获得来自Facebook的cookies插入到上面的facebooksd.get_user_from_cookie函数中?谢谢!

+2

插入*上面的*函数?我没有看到你定义任何功能。如果您可以提供[SSCCE](http://sscce.org),那可能会有所帮助。 – 2013-03-05 20:42:05

+1

错误是相当自我解释或不?自我没有定义,因为你在任何类结构之外使用它。相反,可以复制粘贴一些代码,你应该看看api这个函数需要什么对象,以及你可以在哪里使用函数 – Curlew 2013-03-05 20:45:31

+0

你正在使用哪种Python GraphAPI包装器? http://www.pythonforfacebook.com,或其他四个之一? – abarnert 2013-03-05 20:45:59

回答

1

当然,如果没有实际的回溯和可运行的样本,很难做出积极的反应。但是你的问题几乎肯定发生之前,你甚至可以到任何Facebook的代码,在你的第二行的中间:

import facebook as facebooksd 
cookie = facebooksd.get_user_from_cookie(self.request.cookies, 
    FACEBOOK_APP_ID, FACEBOOK_APP_SECRET) 

最多可以拆分第二线成片:

import facebook as facebooksd 
cookies = self.request.cookies 
cookie = facebooksd.get_user_from_cookie(cookies, 
    FACEBOOK_APP_ID, FACEBOOK_APP_SECRET) 

而且连招第二行到顶端:

cookies = self.request.cookies 
import facebook as facebooksd 
cookie = facebooksd.get_user_from_cookie(cookies, 
    FACEBOOK_APP_ID, FACEBOOK_APP_SECRET) 

,并删除一切:

cookies = self.request.cookies 

瞧,同样的错误,没有任何Facebook代码。

您正试图访问名为self的全局变量,并且没有这样的变量。正如错误消息所述。

那么,你如何解决这个问题?那么,这取决于。你是什​​么预计self.request.cookies是?它应该从哪里来?如果您从其他代码复制并粘贴了该代码(其中大概是某个对象上的方法的一部分,其中self指向该对象),则必须执行任何代码才能获取Cookie。

+0

良好的示范如何通过不破坏OP显而易见的答案来追查问题。 – woozyking 2013-03-05 20:52:26