1

Я пытаюсь внедрить кнопку «Регистрация» для моего сайта. Основная цель: когда пользователь нажимает кнопку, откроется диалоговое окно общего доступа Facebook, и пользователи будут проверяться в специальном месте. Сообщение пользователя не будет автоматически отправлено, и сообщение не будет установлено, чтобы оно не нарушало политику Facebook. Как я знаю, это может случиться с рассказами Facebook Open Graph. Я добавил параметр «Место» в качестве типа объекта Open Graph. Я знаю, что, чтобы это сделать, моему приложению требуется разрешение «publish_actions», а мое приложение находится в режиме разработчиков, так что это не проблема. Я использую Javascript SDK для Facebook. Таким образом, код выглядит следующим образом:Facebook Check-in кнопка для моего сайта

Это 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> 

проблема в том, что код не работает и диалог доступа не открывается. Где моя ошибка?

+0

Есть ли сценарий, который вы должны загрузить для кнопки совместного доступа? Я предполагаю, что если вы посмотрите в инструментах dev, вы увидите «Uncaught ReferenceError: FB.api not defined (...)» – tymcsilva

+0

FB.api() вызывается после загрузки SDK для javascript Facebook. – 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'}); 
Смежные вопросы