Facebook洞察通过graph.facebook.com认证流程

时间:2016-02-26 15:52:02

标签: facebook facebook-graph-api facebook-oauth

我正在尝试以编程方式从Facebook获取各种页面(大约50个客户端)的一些见解指标。因此,我希望自动化。

我创建了一个Facebook应用,并拥有app_idapp_secret。我还创建了一个不会过期的app_access_token

我的问题是:如何获得我希望获得见解的每个页面的page access token?目前我...

步骤1)...转到Query Explorer并选择我的应用,并使用user_accessmanage_pages权限抓取read_insights令牌。

步骤2)然后我使用user_access_token转到https://graph.facebook.com/v2.5/{pagename}?fields=access_token&access_token={user_access_token}以获得我认为是page_access_token的内容。

步骤3)然后,我使用此令牌对https://graph.facebook.com/v2.5/{pagename}/insights/page_impressions?access_token={page_access_token}等内容进行查询。

既然应用程序已经OK了,那么不应该以编程方式在步骤1中获取user_access_token吗?除了上面描述的app_access_token之外,它们都会过期。我可以在步骤1中以某种方式使用该令牌吗?

我没有使用和SDK只是纯粹的https调用。

1 个答案:

答案 0 :(得分:1)

实际上这是可能的。我设法通过这样做获得扩展页面访问令牌:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=[app-id]&client_secret=[app-secret]&fb_exchange_token=[short-lived-token]
来自here

。基本上,您获得一个短暂的用户令牌,然后使用它来获取页面访问令牌,然后将其与您的应用程序ID / secret一起使用,以获得永不过期的扩展页面令牌(非常适合嵌入自动报告应用程序中)。

这是令人费解但却有效。如果您在Facebook业务经理上注册APP,那么该页面令牌将适用于您在该业务经理帐户下有权访问的所有网站。