2012-05-15 107 views
0

//更新: 的幫助我設法抓住一些錯誤,其中固定的標記問題。我更新了代碼以反映這一點。該代碼仍然不會在時間軸上產生事件,但我不會提出這個問題。默認「觀看」動作FB的Open Graph腳本不起作用

原題:

我試圖建立一個使用開放圖形API,這將推向一個訪問頁面的鏈接(含動畫)給Facebook,一旦訪問者點擊該頁面的簡單腳本。

我不使用自定義操作和對象,但標準觀看動作(https://developers.facebook.com/docs/opengraph/video/)和Video.movi​​e對象。

我本想出了基於FB的示例代碼:

<!-- first login-button with scope publish_actions: --> 
<fb:login-button show-faces="false" width="200" max-rows="1" scope="publish_actions" ></fb:login-button> 

<!-- Then script that should push update to timeline: --> 
<script type="text/javascript"> 
    function fbPublish(){ 
     FB.api(
     '/me/video.watches', 
     'post', 
     { 'video.movie': '<?php the_permalink(); ?>', 
     'access_token': 'blablabla' }, 
     function(response) { 
      if (!response || response.error) { 
       alert('Nope.'); 
      } else { 
       alert('Yes.'); // any stuff 
      } 
     }); 
    } 

這會觸發警報「都能跟得上」。

我已經通過捲曲添加了Watch動作。 關於可能發生什麼的任何想法?

回答

0

你仍然需要FB.login可以自動發佈到用戶的時間線之前。

FB.login(function(response) { 
     // Post the action 
}, {scope: 'publish_actions'}); 

雖然我沒有檢查的實際代碼的有效性後的動作,你的問題是,你能做到這一點之前,你需要用戶的許可。 publish_actions權限是您需要的權限,但我認爲它已包含在新的Auth對話框中。請把它留在那裏以確保。

先做的FB.login代碼,你會得到一個彈出的「允許」對話框,在此之後,你可以自由地發佈在用戶的牆的時間。這是安全性的一部分,Facebook用戶不希望你在他們的時間表上發佈而不知道。

+0

感謝您的回答dragonjet。我已經在該範圍內特別添加了登錄按鈕(更新了我的原始問題)。事情是,這個腳本在我使用自定義動作和自定義對象時起作用,我必須定義一個名稱空間等等。但是對於這個默認動作觀看默認對象視頻,它不起作用。我不確定我的腳本是否以正確的方式稱呼它。 '/ me/video.watches'應該工作嗎? – Squrler