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

how to solve facebook get access token error in python?

我已经通过控制台

在 python 中安装了 facebook 模块
pip install facebook-sdk

然后注册到 facebook api 以获得 app_id 和 app_secret.I 我没有在下面透露它们。

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'

请帮忙。

这是一个已知问题。只需卸载 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

结果将包含您的访问令牌