【问题标题】:How to read facebook graph json data using python?如何使用 python 读取 facebook graph json 数据?
【发布时间】:2012-11-27 14:29:34
【问题描述】:

当我在开发环境中打印“user_stream”时,会打印完整的字符串。但是,当我在生产环境中查看控制台中打印的内容时,不会打印“user_stream”的全部内容,我相信这会导致稍后在我拥有的附加代码中出现错误。

我的问题是:为什么“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

【问题讨论】:

  • 尝试打印 u,以确保它正常工作。
  • 这是我打印 u 时得到的结果:>
  • 我的意思是u.read(),应该更具体一些,抱歉...
  • 现在我只看到“[error]”,没有其他文字。我不确定如何解决这个问题,因为当我将带有访问令牌的 user_url 复制/粘贴到浏览器中时,我可以看到完整的 json。
  • 您看到来自 user_stream 的错误,还是看到 u.read() 的打印输出?

标签: python django facebook json facebook-graph-api


【解决方案1】:

不知何故,您的 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 中运行它。

【讨论】:

  • 当我打印 u.read() 时,我只看到“[error]”。当我打印 user_stream['error'] 时,我收到一条错误消息,提示 KeyError for 'error'。我还认为访问令牌也无效,但是当我访问graph.facebook.com/me/…(包括当前/正确的访问令牌)时,我能够看到完整的 json 没有错误。有什么建议吗?
猜你喜欢
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 2012-03-31
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多