获取Access_token以阅读Page Insights

时间:2011-09-15 16:20:35

标签: python facebook-graph-api access-token facebook-insights

我一直在使用python来访问Facebook洞察信息。除了我开发的应用程序的应用洞察之外,我还能够获取公共信息(例如来自cocacola页面的“喜欢”)。

因为我是这两个页面和应用程序的管理员和开发人员,所以当我访问facebook.com/insights时,我会看到一个页面部分和一个应用程序部分。我希望能够从图形api获取两者的见解并将它们存储在我的个人数据库中。获得应用洞察并不困难。我在创建应用程序时获取了app_id和app_secret,然后在此页http://developers.facebook.com/docs/authentication/处按照App Login下的流程进行操作。这给了我一个应用程序access_token,我可以用来获取应用程序的见解。

当尝试对页面执行相同操作时,我遇到了更多麻烦。正如许多以前的帖子所提到的,大多数facebook文档都与facebook应用程序有关,它使用access_token来管理或读取页面中的见解。我知道这对于与用户页面交互的应用程序非常有用。但是,我的直觉说我应该能够获得一个带有read_insights的访问令牌,用于我是管理员的页面,而无需通过外部应用程序。

我能够阅读我的页面的见解的唯一方法是使用Graph Api Explorer。我使用Explorer来获取access_token(通过access_token按钮,允许Explorer访问我的个人数据并请求manage_pages和read_insight扩展的permision)。然后我按照上面发布的/ docs / authentication /页面上的Page Login下的说明,获取我管理的facebook页面的access_token。然后我终于可以运行https://graph.facebook.com/PAGE_ID/insights?access_token=RETRIEVED_TOKEN了。但是,这是一种非常麻烦的查找access_token的方法。有没有办法让这个令牌不那么麻烦?谢谢你的帮助。我一直在努力解决这个问题。

我还包含了用于获取应用访问令牌的代码。

def get_access_token():
    args = dict(client_id=FACEBOOK_APP_ID, client_secret=FACEBOOK_APP_SECRET, grant_type="client_credentials" )
    url = "https://graph.facebook.com/oauth/access_token?" + urllib.urlencode(args)
    response = urlparse.parse_qs(urllib.urlopen(url).read())
    access_token = response['access_token'][0]
    return access_token

1 个答案:

答案 0 :(得分:1)

为什么不使用经典方式:

  • 使用facebook(例如JS SDK)创建应用并使用 offline_access read_insights 权限登录。 offline_access会为您提供永久的access_token,您可以随时使用它来访问这些数据分析。
  • JS SDK(方法FB.login)将返回一个对象,其中包含您需要的access_token。