1

使用Facebook的JavaScript SDK我試圖在一個畫布應用程序內打開一個共享對話框,我可以做的很好。但是,當我嘗試修改與其一起發送的消息時,我無法使事情正常工作。如何在畫布應用上爲共享對話框設置新消息?

我知道我可以使用文檔本身中的元標籤來更改郵件,因爲Facebook會刮掉鏈接上的頁面以從文檔的head中獲取og:*標籤,但是我要共享的郵件是特定於例如,這位用戶的體驗:「我在這個測驗中得分爲9/10,你能做得更好嗎?」。

我已經設置了一個動作,對象和故事,這些動作,連接都沒問題。下面是我的代碼,這是不會改變的消息:

FB.ui({ 
    method: 'share_open_graph', 
    action_type: 'the-dog-breed-quiz:take',   
    action_properties: JSON.stringify({ 
     quiz:'https://apps.facebook.com/removed', 
     message: 'I scored 15 out of a possible 20 on the Test quiz. Can you do any better?' 
    }) 
}, function(response){}); 
+0

您不能爲用戶指定任何份額或帖子的_message_部分,他們必須自己輸入。但是,無論如何,您似乎都會將_message_與對象標題/描述混淆在一起。如果您想要一個包含該用戶特定信息的Open Graph Story,那麼您應該爲此創建一個單獨的Open Graph _object_。如果您不想自己託管該對象(即帶有OG元標記的HTML頁面),則可以使用[對象API](https://developers.facebook.com/docs/sharing/opengraph/object- api)動態創建對象。 – CBroe

+0

那麼你是說我需要在內部創建一個帶有相關'og:*'標籤的頁面,然後將其用作'quiz'值? – Mike

+0

開放圖形故事總是由一個動作_and_一個對象來執行動作。而且,由於您希望用戶分享他們的單個測驗結果,因此您需要爲每個用戶提供一個單獨的對象(如果多次進行測試,甚至可以爲一個用戶提供多個對象)。如果您不想承載主機,您可以執行哪些操作這些對象你自己,我已經提到過。 – CBroe

回答

0

經過一番搜索和拼湊的東西放在一起,我有以下解決方案。

的過程是這樣的:

  • 有被點擊的按鈕。這是必須的,因爲您需要提供用戶交互證明才能顯示對話框。
  • 確保您在登錄時擁有publish_actions權限
  • 創建用戶操作。我使用JS SDK做了這個,看下面的代碼。
  • 以從所述用戶動作和基準標識,作爲UI呼叫

的一部分。

FB.api(
    'me/objects/your-app-namespace:quiz', 
    'post', 
    {'object': { 
     'og:title': 'Blah blah', 
     'og:type': 'your-app-namespace:quiz', 
     'og:image': 'https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png', 
     'og:description': 'keyboard mashdfhg nfkg kfd hg', 
     'fb:app_id': 'removed' 
    }}, 

    function(response) {  
     // handle the response 
     FB.ui({ 
      method: 'share_open_graph', 
      action_type: 'your-app-namespace:take', 
      action_properties: JSON.stringify({ 
       quiz:response.id, 
      }) 
     }, function(response){ 
      console.log(response); 
     }); 
    } 
); 
相關問題