2012-11-27 19 views
0

當我在開發環境中打印「user_stream」時,會打印完整的字符串。但是,當我查看在生產環境中打印在控制檯上的內容時,「user_stream」的完整內容不會打印出來,我相信這會導致稍後在其他代碼中出現錯誤。如何使用python閱讀facebook圖表json數據?

我的問題是:爲什麼生產環境中的控制檯不打印所有「user_stream」的內容,我該如何解決?

instance = UserSocialAuth.objects.get(user=request.user, provider='facebook') 
token = instance.tokens 
user_url = "https://graph.facebook.com/me/friends?access_token=" + token['access_token'] 

u = urllib.urlopen(user_url); 
user_stream = json.loads(u.read()) 

print user_stream 
+0

試着打印一下,只是爲了確保它正常工作。 – PearsonArtPhoto

+0

這就是我在打印u時得到的:> – sharataka

+0

我的意思是'u.read()',應該更加具體,不好意思... – PearsonArtPhoto

回答

0

。在你的user_stream錯誤莫名其妙。找出它的最好方法是打印字符串,或直接打印錯誤消息。這些命令應該可以幫助你弄清楚發生了什麼。

print u.read() 
print user_stream['error'] 

我強烈懷疑您的訪問令牌無效。看看那個。什麼,你可能會從Graph API Explorer看到的一個例子是這樣的:

{ 
    "error": { 
    "message": "Malformed access token AAACEdEose0cBAM0CipLFjIDZCysqmGyZCRJ6x4JsdSVkb177lM0UNMWqSYZA9BmBY0h3PbUiIJppQCbDZD", 
    "type": "OAuthException", 
    "code": 190 
    } 

有仔細閱讀該消息,看看你能弄清楚如何糾正它。另外,嘗試打印我們的完整URL並在Graph API Explorer中運行它。

+0

當我打印u.read()時,我只看到「[error]」。當我打印user_stream ['錯誤']時,我收到一個錯誤,說'錯誤'的KeyError。我也認爲訪問令牌也是無效的,但是當我訪問https://graph.facebook.com/me/friends?access_token=AAACksif9DeoBAADTs6KQ6rBZCgRpgZB6UIRgZBG6LMoG0LHi80h17iPeQkmhhOzkkIZBaBt08FpnL7ZBJZBrBUxZB7PIOLrHTkZD(它包含當前/正確的訪問令牌)時,我可以看到完整的JSON沒有錯誤。有什麼建議? – sharataka