2015-10-16 114 views
0

我修改了xdamman的優秀選擇共享器JQuery庫(https://github.com/xdamman/selection-sharer),以使用FB.ui而不是Facebook的/ dialog/feed小部件。這是因爲/ dialog/feed小部件和/sharer/sharer.php小部件都不能控制共享鏈接的鏈接摘要。所以我用下面的代碼:Facebook SDK FB.ui鏈接分享器:「發生錯誤,請稍後再試。」

FB.ui(
    { 
     method: 'feed', 
     name: name, // (e.g. "Interesting News Item") 
     link: self.url2share, // (the current URL as determined by window.location.href, e.g. "https://www.commonspace.scot/articles/2688/poll-snp-support-surges-further-with-months-to-go-before-scottish-elections") 
     picture: picture, // (e.g. "https://www.commonspace.scot/public/artarticle/a3/41/4162_6493.jpg?c=64a2);%20?%3E") 
     caption: 'commonspace.scot', 
     description: text // (arbitrary text string) 
    }, 
    function(response) { 
     if (response && response.post_id) { 
     //alert('Post was published.'); 
     } else { 
     //alert('Post was not published.'); 
     } 
    } 
); 

FB.ui被初始化像這樣:

window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '1011782388842782', 
    xfbml  : true, 
    version : 'v2.4' 
    }); 
}; 

現在,這裏是真正的踢球者 - 在上面的代碼工作就好從開發運行時服務器在https://dev.commonspace.scot,但錯誤「發生錯誤,請稍後再試。」在主服務器上共享時遇到。

事情我已經嘗試:

FB.ui(
    { 
     method: 'share', 
     href: 'https://developers.facebook.com/docs/', 
    }, 
    // callback 
    function(response) { 
     if (response && !response.error_message) { 
     alert('Posting completed.'); 
     } else { 
     alert('Error while posting.'); 
     } 
    } 
); 

遇到錯誤:

  • 從Facebook的網站更換用下面的演示代碼上面的代碼「這個程序是在演示模式下而你不知道沒有權限查看它。「

  • 將所有動態生成的字符串(name,link2share,picture,description)替換爲預定義的僞文本。遇到錯誤:「應用程序配置不允許給定URL:應用程序的設置不允許使用一個或多個給定的URL,它必須與網站URL或Canvas URL匹配,或者該域必須是其中一個的子域應用程序的域名「。

  • 添加

    REDIRECT_URI: 'https://www.commonspace.scot',

作爲FB.ui.參數結果:「發生錯誤,請稍後再試。」

以下重要設置已被用於該應用指定:

  • 應用在公開模式(它們已刪除「沙箱」 AFAICT)
  • 的應用ID是使用元標記設置:

    <meta property="fb:app_id" content="1011782388842782" /> 
    

...和共享者圖書館是瞭解應用程序ID。

  • 顯示名稱和聯繫電子郵件都已設置爲應用程序。
  • 已經指定了三個應用程序域:commonspace.scot,dev.commonspace.scot,www.commonspace.scot;儘管我也嘗試過使用一個域(commonspace.scot)。
  • 網站網址設置爲「https://www.commonspace.scot/」。

重要提示:這些錯誤是相當通用的,並顯示在Facebook SDK的大部分內容中。到目前爲止,我所見過的大部分答案(包括在stackoverflow上)都與SDK的其他部分有關,例如OAuth對於這些特定錯誤特別常見。我不清楚,如果有的話,那裏適用的答案如何適用於此。我已經嘗試了各種這樣的解決方案,但其中不清楚,選擇一個特定的,「回調URI/URL」在這種情況下意味着什麼,或者它是否有幫助。此問題僅適用於共享者對話框。

預先感謝您。

回答

0

我會非常感興趣的是,如果有人有解釋爲什麼FB.ui爲什麼在dev站點上工作,而不是在生產站點上工作。這樣的答案對其他人也是非常有用的。

在此期間,如果別人從完全一樣的問題的痛苦,我終於又回到使用/對話框/飼料窗口小部件,而不是FB.ui有以下變化:

var url = 'https://www.facebook.com/dialog/feed?' + 
      'app_id='+self.appId + 
      '&display=popup'+ 
      '&picture='+encodeURIComponent(picture)+ 
      '&caption='+document.domain+ 
      '&name='+encodeURIComponent(name)+ 
      '&description='+encodeURIComponent(text)+ 
      '&link='+encodeURIComponent(self.url2share)+ 
      '&href='+encodeURIComponent(self.url2share)+ 
      '&redirect_uri='+encodeURIComponent(self.url2share); 

您可以查看完整的源代碼,或者自己使用庫,使用我的叉子https://github.com/djcf/selection-sharer

相關問題