1

我正在嘗試爲我的網站實施「登記」按鈕。主要目的是:當用戶點擊按鈕時,Facebook共享對話框將打開,用戶將在自定義位置進行檢查。用戶信息不會被自動發佈,並且信息不會被設置,以免它違反Facebook政策。 正如我所知,這可能發生在Facebook Open Graph的故事中。我已經添加了一個「Place」選項作爲Open Graph Object類型。我知道要做到這一點,我的應用程序需要「publish_actions」權限,我的應用程序處於開發者模式,所以這不是問題。我使用Facebook Javascript SDK。因此,代碼是這樣的:我的網站的Facebook登記按鈕

這是OG標記(Facebook給出的):

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# place: http://ogp.me/ns/place#"> 
    <meta property="fb:app_id"    content="my-app-id" /> 
    <meta property="og:type"     content="place" /> 
    <meta property="og:url"     content="my-url" /> 
    <meta property="og:title"     content="my-place-name" /> 
    <meta property="og:image"     content="sample-url-image" /> 
    <meta property="place:location:latitude" content="Sample Location: Latitude" /> 
    <meta property="place:location:longitude" content="Sample Location: Longitude" /> 

,這是調用共享對話框(也被Facebook給出)功能:

function share() 
{ 
    FB.api(
     'me/objects/place', 
     'post', 
     {'object': { 
     'og:url': 'my-url', 
     'og:title': 'my-place-name', 
     'og:type': 'place', 
     'og:image': 'sample-url-image', 
     'og:description': '', 
     'fb:app_id': 'my-app-id', 
     'place:location:latitude': 'Sample Location: Latitude', 
     'place:location:longitude': 'Sample Location: Longitude' 
     }}, 

    function(response) { 
     // handle the response 
     // for example (using Jquery) 
     $('#element').append('shared'); 
     } 
    ); 
} 

,這是該函數的調用:

<span onclick="share()">click to share</span> 
<div id="element"></div> 

的問題是,代碼不工作nd共享對話框將不會打開。我的錯誤在哪裏?

+0

是否有腳本,你應該爲共享按鈕加載?我猜測,如果你看看開發工具,你會看到一個'Uncaught ReferenceError:FB.api not defined(...)' – tymcsilva

+0

FB.api()在加載了Facebook JavaScript SDK後調用。 – webtech

+0

您在控制檯中遇到什麼錯誤? – tymcsilva

回答

0

最後,我創建它只是一個共享按鈕。可以選擇檢查是否真的發佈,之後不會取消。

FB.ui({ 
    method: 'share', 
    mobile_iframe: true, 
    title: 'My title', 
    href: 'url to share', 
    picture: 'image URL', 
    description: 'The description' 
    }, function (response) { 
    if (response && !response.error_message) { 
    alert('Thank you for sharing!'); 
    } else { 
    alert('You have cancelled the share.'); 
    } 
    }); 
},{scope: 'email'}); 
相關問題