2012-08-28 36 views
8

主要目标:我如何才能获得一个facebook应用程序无限制的访问令牌?如何获得持久的Facebook访问令牌?

背景资料

我们有一个名为MyApp的跟下面成立了一个FB应用:

  • MyApp的被授权与我们的Facebook应用进行互动
  • MyApp的具有管理访问权限,我们的pages(manage_pages)
  • MyApp有权访问Insights(read_insights)

我们的目标是自动提取“见解”数据,例如,每晚一次。

尝试使用OAuth生成应用令牌

  1. 获取APP_ACCESS_TOKEN属于MYAPP

    graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID & client_secret = YOUR_APP_SECRET & grant_type = client_credentials

    退役令牌的示例:328467452729456598 | Wn2Gt69Ofg5ySdOGa3TsP2p4R

  2. 使用APP_ACCESS_TOKEN获得PAGE_ACCESS_TOKEN为每个页面 graph.facebook.com/me/accounts?access_token=APP_ACCESS_TOKEN

  3. 使用PAGE_ACCESS_TOKEN获得页面的解析数据: graph.facebook.com/YOUR_APP_ID/洞察=的access_token PAGE_ACCESS_TOKEN

我的问题是,APP_ACCESS_TOKEN我得到第1步似乎缺少令牌的用户部分,导致下面的错误运行的第2步时:

"message": "An active access token must be used to query information about the current user.", 
"type": "OAuthException", 
"code": 2500 

尝试使用令牌从图形浏览器API令牌

检索如果我使用APP_ACCESS_TOKEN通过图形API浏览器(https://developers.facebook.com/tools/explorer),我得到获得用户部分的令牌显着更长。 如果我在步骤2和步骤3中使用此标记,我会得到正确的数据,但所有标记只有2小时有效,随后我无法将其用于自动检索洞察数据。

尝试与交换长住令牌

按照本指南中介绍的步骤短暂令牌:https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token,我试图较长住一个交换短命的令牌。

如果我使用try来交换从OAuth的过程中获得的令牌,我得到的错误:

"message": "No user access token specified", 
    "type": "OAuthException", 
    "code": 1 

如果我使用的交换方法的图形管理器中手动获取的令牌,我可以得到其他步骤也可以工作,但这个新令牌持续多久?如果令牌在x天后或其他事件之后过期,我仍然会面临以编程方式获取初始令牌的问题(而不是从图形浏览器手动获取每个令牌)。

因此,没有人知道我怎样才能得到一个长寿命,自动检索令牌来解决这个问题?

谢谢!

+0

你需要一个_user_访问令牌来查询'/我/ accounts',不是一个应用程序访问令牌。 – CBroe

回答

-1

在步骤2中,您必须使用用户的access_token访问/accounts API端点。您无法在此处使用App Access令牌。

你应该做的是:

  1. 从Facebook
  2. 交易所的access_token的长期令牌
  3. 呼叫/accounts获取用户的访问令牌来获得长期活页访问令牌
  4. 访问页面的见解使用长期令牌,直到它过期
  5. 重复步骤1-4。
+0

你的意思是应用程序的[用户令牌(https://developers.facebook.com/tools/access_token/)?如果是这样,是否有某种方式来编程? (我与用户试图ACCES – user1597852

+0

我说'应用程序不access_token'“用户令牌”,并按照上面我的指示来获得你所需要的程序。在步骤(3),我给你的API调用来获取对的access_token 。页面一切都必须通过完成用户的'access_token' –

+0

你怎么做的步骤(2) –