2012-05-10 52 views
1

我正在請求如下所示:什麼控制哪些用戶帖子通過Facebook Graph顯示?

https://graph.facebook.com/USER_ID/posts?access_token=TOKEN

當令牌從圖形API瀏覽器(從https://developers.facebook.com/tools/explorer登錄爲我自己的用戶帳戶),我看到一些帖子大多數用戶使用。

當令牌是我自己的應用程序和我自己的用戶帳戶的用戶令牌,從客戶端流程[*]造成的,我看到{ "data": [] }幾乎每一個人。

什麼可能會導致差異?據我所知,這兩個令牌獲得了相同的權限(兩個令牌從https://graph.facebook.com/me/permissions?access_token=TOKEN獲得相同的回報)。

我能想到的是,我正在尋找的帖子不是我的應用的用戶,但也許每個人都是神奇的API Explorer的用戶。但是我希望看到的信息對我來說都是可見的,無論是在他們的用戶頁面上還是從使用API​​ Explorer令牌的Graph上看到的,所以當然這不是安全限制:I可以獲得一個令牌,我想要的信息,但我的應用程序不能。因此:

  • 爲什麼在使用我的應用程序時我的帖子不可見?
  • 我該怎麼辦?
  • 我們目前的理論是,API瀏覽器具有訪問公共數據的特殊權限,其他應用程序無法獲得該權限。這是真的,還是有我可以通過我的應用程序通過/posts查看公共數據?

[*]使用的網址:https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=manage_pages,read_stream,read_requests,user_location,user_activities&response_type=token

+0

您確定您的應用具有「read_stream」擴展權限嗎? –

+0

@NitzanTomer:https://graph.facebook.com/me/permissions表示我的應用程序的用戶令牌已安裝:「1」,「read_stream」:1,「read_requests」:1,「manage_pages」:1 ,「user_location」:1,「user_activities」:1'。我是否也需要我查詢的用戶給我'read_stream'權限?如果這是區別,那麼所有這些用戶何時授予Graph API Explorer權限?我不相信他們都是使用它的Facebook應用程序開發人員。 –

+0

不,「read_stream」應該讓你獲得登錄用戶的朋友的帖子。我只是在資源管理器中自己測試了一下,我刪除了一個測試應用程序,並且只添加了「read_stream」權限,我收到了朋友的帖子。請記住,它只適用於當前登錄用戶的朋友。我建議你使用帶DELETE的瀏覽器作爲路徑「我/權限」,然後再次點擊「獲取訪問令牌」按鈕。 –

回答

1

我看到你說的話,我測試了它自己,我會得到相同的。 這是我的想法,但這只是一個猜測。

從我剛剛測試的結果來看,使用圖形瀏覽器應用程序時返回的數據是用戶的公共數據,如新朋友和公共帖子。 如果我轉到Facebook用戶的個人資料,我可以看到相同的確切數據。

爲什麼你的應用程序不能獲取公共數據? 那麼,Facebook授予特定應用程序的特殊權限,而在圖形瀏覽器(這是他們的應用程序)的情況下,認爲他們做到了這一點並不遙遠。 爲了測試理論,我刪除了圖形瀏覽器的所有權限,並嘗試獲取不是我的朋友的用戶的帖子,並且確實得到了相同的結果。 當我用「我/帖子」測試它時,我得到了我的帖子,而不僅僅是公開的帖子。 如果您從自己的應用程序中刪除權限,那麼即使您的帖子將返回數據:[]

您的應用只能獲取登錄用戶和他的朋友的數據。

+0

感謝您的幫助。如果他們的瀏覽器應用程序可以訪問我的任何應用程序都不會的數據,那麼他們基本上只是提出希望衝破它們的希望,不是嗎? :-(至少,這不是一個安全漏洞,人們可以通過瀏覽器訪問非公開數據。 –

+0

Explorer工具只是爲了幫助您進行開發,因此它可以讓您看到您作爲登錄用戶可以。該文檔是您可以執行的更好的源代碼。 –

相關問題