2012-11-17 22 views
0

我們在一個大麻煩請幫助。fb oAuth和閱讀密切的組飼料 - probm

當組已打開時,我們可以閱讀JSON訂閱源,但是當組隱私設置爲「已關閉」時,我們無法閱讀它,並且無法將組恢復爲「打開」。我們現在正在做的是

$facebook = new Facebook( array( 'appId' => '', 'secret' => '', ) );

$t= $facebook->getAccessToken(); $gid = "233395776824135"; # some group id

$data = curl_get("https://graph.facebook.com/$gid/feed?limit=20&access_token=$t"); curl_get is a function that reads using curl

現在數據返回給我們的(所有時間)只有 {「數據」:[]}

有什麼需要我們做到oAuth的「getAccessToken」功能來設置user_groups權限?如果是的話我們可以怎麼做?

下頁告訴,如果組已關閉,你需要user_groups許可 https://developers.facebook.com/docs/reference/api/group/

請幫幫忙!謝謝

回答

0

在Facebook有不同的訪問令牌。對於公共團體,您可以使用「應用程序訪問令牌」,我想這就是您對「getAccessToken」的調用所獲得的結果(對於每個應用程序基本都是靜態的,並且是應用程序ID和應用程序密碼的組合。對於非公開的用戶組,你需要一個「用戶訪問令牌」,這意味着你必須實現一個用戶登錄(與user_groups許可)看到這裏使用的登錄使用JavaScript API的文檔:

https://developers.facebook.com/docs/reference/javascript/FB.login/

用戶的訪問令牌僅適用2小時順便說一句,您可以通過調用的PHP SDK的「setExtendedAccessToken」他們延長至60天,這意味着,你不能用它來發布非飼料 - 公共團體在您自己的網站上,您只能向一個用戶展示它。或者您存儲用戶令牌並每60天刷新一次。但我不會推薦這樣做,使該組的非公開設置無效,並且管理員可能不喜歡它。

+0

我自己是集團的管理員先生,並且由於集團不再開放我無法獲取飼料。其次,你的意思是通過發送臨時令牌給「setExtendedAccessToken」將其使用60天或什麼? –

+0

是的,該函數將令牌延長達60天(而不是默認的2小時)。而且您確實需要非公共組的訂閱源的用戶令牌,因爲只有該組的成員才允許讀取它。 所以,你唯一的機會就是我寫的:user_groups權限的用戶登錄會做到這一點。 – luschn