3

我一直在努力使用python來訪問Facebook洞察信息。除了我開發的應用程序的應用程序見解之外,我還能夠獲得公共信息(例如來自cocacola的頁面的'喜歡')。獲取一個Access_token來閱讀頁面見解

因爲我是頁面和應用程序的管理員和開發者,所以當我轉到facebook.com/insights時,我會看到一個頁面部分和一個應用程序部分。我希望能夠從圖形api中獲得兩個洞察,並將它們存儲在我的個人數據庫中。獲得應用程序見解並不困難。當我創建我的應用程序後,我獲得了我的app_id和app_secret,然後在此頁面http://developers.facebook.com/docs/authentication/下的App Login下面執行了該過程。這給了我一個app access_token,我可以用它來獲取應用程序見解。

當試圖做同樣的網頁,我有更多的麻煩。正如許多以前的帖子所提到的,大多數facebook文檔都與facebook應用程序有關,通過獲取access_token來管理或閱讀來自頁面的見解。我知道這對於與用戶頁面交互的應用很有用。然而,我的本能說,我應該能夠獲得一個訪問令牌與read_insights爲我是管理員的頁面,而無需通過外部應用程序。

我已經能夠閱讀我的頁面的見解的唯一方法是使用Graph Api Explorer。我使用資源管理器獲取access_token(通過access_token按鈕,允許資源管理器訪問我的個人數據,並請求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

爲什麼不使用傳統的方法:

  • 創建一個應用程序,並通過Facebook登錄到它(JS SDK爲例),與offline_accessread_insights許可。 offline_access會爲您提供一個永久access_token,您可以隨時使用它來訪問洞察。
  • JS SDK(方法FB.login)將返回一個對象,其中包含您需要的access_token。