-2

我正在使用 Facebook python sdk 来获取用户的电子邮件

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 获取 cookie 以插入上面的 facebooksd.get_user_from_cookie 函数?谢谢!

4

1 回答 1

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。

于 2013-03-05T20:49:46.263 回答