2010-06-17 156 views
69

使用圖形API我希望能夠有一個授權用戶「喜歡」一頁一頁。「喜歡」使用Facebook的圖形API

我嘗試發佈以下

https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}

我也得到伴隨JSON響應體「無效POST_ID參數」 HTTP錯誤500。看起來像/likes資源適合喜歡牆貼而不是頁面。我如何得到這個與頁面一起工作?

回答

3

我相信這是不允許的,除了特定合作伙伴的網站,像狗吠。原因在於安全性,您可以在頁面上放置一些JavaScript,並讓所有訪問該頁面的所有人「在不知情的情況下訪問」。

How do I "Like" a URL?在Facebook平臺開發者論壇

+2

那麼不是真的 - 圖形API使應用的訪問令牌來阻止這類安全問題的問用戶明確授予訪問Facebook應用程序。無論如何,我通過去facebook的首選路線嵌入一個iframe到他們喜歡的按鈕來解決這個問題(打開圖api)。 – 2010-07-06 08:27:37

+4

「Like」ing(通過iframe或fbml)不是應用程序,因此不需要額外的權限,只需要您登錄Facebook。我仍然在尋找一種方法來讓自定義的Like按鈕不在Facebook託管的iframe中。 – Luke 2010-07-13 11:23:26

+0

盧克 - 我也是!讓我們知道如果你找到一種方法來使自定義按鈕(在我的情況下是Android API)喜歡頁面或應用程序。 – 2011-07-24 18:44:34

5

如果你想在Facebook的內頁選項卡或畫布頁面此功能(說以允許likegated頁面內順心的頁面),一個工作,你身邊能涉及湯姆威爾斯在回答盧克時的建議。你先嵌入他們的喜歡按鈕的iframe版本的網頁,然後簡單地聽你的JS的edge.create事件,像這樣:

FB.Event.subscribe('edge.create', 
    function(response) { 
     alert('You liked the URL: ' + response); 
     // ... 
    } 
); 

在回調中,您可以處理與當用戶發生了什麼喜歡這個頁面,比如像從類似頁面的頁面導航,或者顯示只有喜歡的內容。

當用戶點擊iFrame like按鈕時,您的JS代碼應該會收到edge.create事件,假定iFrame被配置爲指向相關頁面的url。

+1

我認爲OP在詢問如何以編程方式進行此操作,也許作爲通過自定義控件傳遞「喜歡」的一種方式。 – 2012-09-09 00:23:36

42

Facebook已經宣佈通過官方built-in Like action喜歡URL的Facebook的外部支持。您需要擁有publish_actions權限。這個圖表網址是: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

但是,你不能使用這個喜歡Facebook上的網頁目前,作爲documentation states

對於Facebook網頁或網站,不與Facebook 認證系統整合,開發者應該繼續使用Like按鈕 社交插件。

+0

我不認爲你可以像使用內置的陽離子那樣喜歡頁面。你可否確認? – AbhinavVinay 2012-07-03 19:53:52

+0

@AbhinavVinay這是正確的。我更新了答案。 – bkaid 2012-07-03 20:29:40

+0

是否有一個Facebook開發人員資源,說你不能在Facebook頁面上使用內置的。不是說我不相信你,但我正試圖理解爲什麼是這樣。您是否在內建的類似文檔頁面上引用了此聲明:「應用程序使用內置的Like操作,與任何Open Graph操作一樣,需要提交併批准。對於Facebook頁面或網站未與Facebook身份驗證集成,開發人員應繼續使用Like按鈕社交插件。「? – 2012-09-13 14:32:28

9

更新2016年6月

它仍然無法像使用Facebook的API頁面,大約創建/更新/刪除在/{user_id}/likesdocumentation page說:

你無法在此端點上執行此操作。

在以前的版本中,消息更加清晰(請參見下面的引用),但結果是一樣的:這是不可能的。

五月/{user-id}/likes文檔頁面國家有關Facebook網頁的Publishing Likes

不能發佈使用這個優勢,因爲是不可能喜歡一個Facebook頁面通過任何API。如果你希望人們能夠喜歡你的應用中的頁面,你應該使用Like按鈕。

這是最明顯,最清晰的聲明,能夠給我一個問題的答案。

0

你可以像使用Facebook的API使用下面這段代碼的對象ID的對象

[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    //do you customisation post like here 
}]; 
相關問題