如何解决 facebook 在 python 中获取访问令牌错误?

Posted

技术标签:

【中文标题】如何解决 facebook 在 python 中获取访问令牌错误?【英文标题】:how to solve facebook get access token error in python? 【发布时间】:2015-11-04 13:58:14 【问题描述】:

我已经通过控制台在python中安装了facebook模块

pip install facebook-sdk

然后注册到 facebook api 以获取 app_id 和 app_secret。我不会在下面披露它们。

import facebook
app_id = '00000'
app_secret = 'xxxx'
access_token = facebook.get_app_access_token(app_id,app_secret)

当我执行它以获取 access_token 时,我的 python 控制台抛出以下错误:

Traceback (most recent call last):

  File "<ipython-input-18-0dfc0fd92367>", line 1, in <module>
access_token = facebook.get_app_access_token(app_id,app_secret)

AttributeError: 'module' object has no attribute 'get_app_access_token'

请帮忙。

【问题讨论】:

【参考方案1】:

这是一个已知问题。只需卸载facebookfacebook-sdk,然后仅重新安装facebook-sdk

sudo pip uninstall facebook
sudo pip uninstall facebook-sdk
sudo pip install facebook-sdk

此外,您可以通过以下方式实现自己的get_app_access_token

def get_app_access_token(app_id, app_secret):
    """Get the access_token for the app.

    This token can be used for insights and creating test users.

    @arg app_id :type string :desc retrieved from the developer page
    @arg app_secret :type string :desc retrieved from the developer page

    Returns the application access_token.

    """
    # Get an app access token
    args = 'grant_type': 'client_credentials',
            'client_id': app_id,
            'client_secret': app_secret

    f = urllib2.urlopen("https://graph.facebook.com/oauth/access_token?" +
                              urllib.urlencode(args))

    try:
        result = f.read().split("=")[1]
    finally:
        f.close()

    return result

结果将有您的访问令牌

【讨论】:

非常感谢@naqushab 的帮助。成功执行后,我的下一行代码出现错误 graph = facebook.GraphAPI(access_token) AttributeError: 'module' 对象没有属性 'GraphAPI'

以上是关于如何解决 facebook 在 python 中获取访问令牌错误?的主要内容,如果未能解决你的问题,请参考以下文章

将 SBJson 与 facebook sdk 静态库一起使用

Spring-Security-Facebook 插件,Facebook 登录错误

当前用于 facebook-oauth 的纯 python 解决方案?

Facebook : 如何使用 xmpp 将私人消息作为粉丝页面发送

如何在 ubuntu 中为 python 安装 facebook-sdk?

如何在php中获得下个月的同一天