2012-02-25 102 views
7

好吧,這可能聽起來很奇怪。從這個過程Facebook圖形API - 使用'應用程序訪問令牌'來獲取Facebook頁面訂閱源(解決方案)

https://graph.facebook.com/oauth/access_token?「+」的client_id當一個Facebook應用程序被配置爲天然的/桌面應用(Apps->您的APP->高級>應用類型),則「應用程序訪問令牌」獲得=」 + APP_ID + 「& client_secret =」 + APP_SEC + 「& grant_type = client_credentials」

都不行,從Facebook頁面獲取飼料或交。按照Facebook的文檔 取飼料只需要任何有效的access_token或用戶access_token,如果應用程序配置爲本機/桌面,它就不會以這種方式工作。

1解決方案經過長達數天的研究後發現令人沮喪的結論是,它必須在(應用程序 - >您的應用程序 - >高級 - >應用程序類型)中配置爲基於「網絡」的應用程序。

一旦建立,以上提取飼料的過程works.This提出一個問題,這是一個錯誤?或者我誤解了文檔。

我希望我已經爲你節省了一天,如果你一直在Facebook頁面Feed上工作,並且因爲顯而易見的原因而失去理智,脫髮。

[1] Facebook forum post

+0

你需要的是爲Facebook頁面的access_token - 如何獲取http://stackoverflow.com/questions/9395356/facebook-post-image-and-description閱讀本9395916#9395916 - 然後只是使用圖API,如果你正在得到一個普通用戶的飼料(使用Facebook頁面ID和給定的訪問令牌) – scibuff 2012-02-26 01:22:23

+0

讚美你,appType確實很重要。我試圖獲取各種公共Feed的原始JSON數據,但自2012年以來,它需要60天后過期的用戶令牌,這種方式只是使用appID + appSecret-> appToken我可以再次輕鬆訪問公共Facebook數據:-) – PetrV 2012-07-18 11:41:33

回答

1

下面是相關文檔有關使用應用的訪問令牌

時,爲了保持他們的投稿功能,直接從您的服務器發起的應用程序的訪問令牌,才應使用私密的應用程序。例如,您不應該在客戶端(如本機移動應用程序)內使用App Access令牌進行發佈。這樣做可以讓個人獲得App Access Token,然後這些令牌可以讓他們代表您的應用採取行動。相反,您應該將自己的本機移動應用程序隊列操作與您的服務器配合,然後讓您的服務器使用應用程序訪問令牌將故事發布到Facebook。因此,如果您在「設置」>「高級」中的「應用類型」設置爲「本機/桌面」,則我們假定您的客戶端應用程序在其二進制文件中包含應用程序密鑰或應用程序訪問令牌,並且不允許使用應用程序訪問令牌繼續。該API的行爲就像沒有提供訪問令牌一樣。

Source

兼談獲得應用程序訪問令牌

因爲它需要你,包括你的應用程序的祕密,你不應該試圖進行此調用客戶端的這會將這個祕密暴露給所有的應用用戶。您的應用祕密永遠不會與任何人分享,這一點很重要。出於這個原因,這個調用應該在服務器端執行[...]

Source

相關問題