不想看廢話前言直接按此
===================================================
會來研究這個是因為有網友在問,怎麼用 sharedposts 都取不到資料,所以就來研究一下
因為我印象中之前好像是可以的~
如果只看標題似乎感覺很簡單似的,因為語法官網也寫得很清楚
就是使用 /{object-id}/sharedposts
https://developers.facebook.com/docs/graph-api/reference/v2.1/object/sharedposts
但是相信我,這篇絕對不是用來混篇數的 @@
這簡直試到頭破血流才得到的答案
因為官網文件寫說 comments、likes 都是使用{object-id}
也因為我 comments 跟 likes 都是使用Po文的ID來帶入的
所以很自然在取得shared post 的時候就用了post_id
但是卻發現一直取不到資料
然後也照官網說的,要取資料前要先取得 read_stream permission 了
但是還是空的
網路上關於sharedposts的資料又少的摳憐,大部分都是轉貼個官網連結
然後最後讓我找到了這篇
Information of re-shared status
裡面有提到 The sharedposts field applies to a status id
我只知道post_id、uid、page_id、object_id 不知道什麼是 status id @@
官網好像也沒提到這個編號去哪找,而且返回的 JSON 裡面也沒這欄位
後來才發現post_id 的_ 符號後面那串好像就是所謂的 status id
ex : Po文的編號是 232633627068_10152756840542069 的話
status id 就是 10152756840542069
所以試了一下就馬上可以用了
想要看結果的話請點下面:
測試前請先取得access_token 並且切換到Extended Permissions,取得read_stream權限

*****
*****
*****
*****
*****
*****
請問現在有辦法找到email嗎? UID好像不能用了~ thanks :)
找email必須要特殊權限才可以,必須要跟facebook 申請權限
請問一下,我可以取得完整的留言名單,但是分享名單我只能取得前幾十筆,就算設定 limit 也是一樣 @@
hello 分享名單的話,如果要取得完整資料必須要取得read_stream權限的樣子 不然好像只會取得公開的資料喔 如果沒申請的話可以到app的 status & review 照步驟去申請 (申請過程有點嚴格)
可以教一下怎麼申請嗎? 有點不懂
你可以到你的APP設定中的 status & review 裡面有個 Submit Items for Approval,點選start a submission,勾選你要申請的權限即可,但是要用英文寫說明給facebook (用中文會被退件),說明你申請的這個權限會使用在哪邊,印象中還要截圖說明有點嚴格
我確定那些分享都公開看得到,但是我只抓得到特定幾筆資料 orz 假設分享有一千筆,而且都公開,但是我只抓得到其中 100 筆 XD
你是直接在你程式中測試的嗎? 還是在Graph API Explorer 工具中測試的? https://developers.facebook.com/tools/explorer 你先試試看在工具中測試,然後勾選read_stream 看能不能查到全部的資料,如果可以的話應該還是權限的問題~
hi你好,最近發現用您的方法有個問題... 測試了幾篇分享數較少的post...都有抓到名單 但share數超過一定數量 (ex 2000)就會完全抓不到...想請教是權限的問題嗎?
hello 我覺得有可能是權限問題...(不確定) 請問你是在facebook 的 explorer tool 中測試的嗎? 可以想辦法取得"完整"的read_steam權限再試試看 透過explorer tool取得的access token可能有被限制 但筆數不足也可能是facebook 本身的問題 請看此篇bug回報 https://developers.facebook.com/bugs/1404733043148335/ 官方說明大概是這樣...因為可能使用者在隱私設定中,關閉了讓app存取他們分享的連結,因此API就無法抓到 (也不算bug)
想請問一下 會跳出這段error的原因是? { "error": { "message": "Error validating access token: The session is invalid because the user logged out.", "type": "OAuthException", "code": 190, "error_subcode": 467 } }
hi 我沒有遇過這訊息 不過facebook 官方的說明是 https://developers.facebook.com/docs/facebook-login/access-tokens "Access Token invalidated due to the person logging out or changing their password" 解決方式也可以參考一下這一篇 http://stackoverflow.com/questions/17426018/generate-never-expire-access-token-for-facebook-page
切換到Extended Permissions,取得read_stream權限 這段什麼意思 能否再講清楚一點,感謝您
在測試工具 https://developers.facebook.com/tools/explorer/ 點選Get User Access Token那邊可以選權限,之前會有一個Extended Permissions 可以切換,裡面有read_stream可以選擇 但是我剛剛看他把它整合在同一頁了,而且移除了read_stream 權限了 然後在 https://developers.facebook.com/docs/facebook-login/permissions 官網有寫,這個read_stream已經過時,所以要找新的替代方式了 已過時的權限 manage_notifications read_stream read_mailbox 替代方式官網建議是用這個 https://developers.facebook.com/docs/facebook-login/permissions#reference-user_posts