-2

Facebookpythonsdkを使用してユーザーのメールアドレスを取得しています

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

もちろん、実際のトレースバックと実行可能なサンプルがなければ、ポジティブになるのは困難です。しかし、2行目の途中で、Facebookコードに入る前に、問題がほぼ確実に発生します。

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

その2番目の行を分割して分割できます。

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

そして、2行目を上に移動します。

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 に答える