2012-08-28 39 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) –