1

Ich versuche einen "Check-In" -Button für meine Website zu implementieren. Der Hauptzweck: Wenn der Benutzer auf die Schaltfläche klickt, wird ein Facebook-Freigabe-Dialog geöffnet und die Benutzer werden an einem benutzerdefinierten Ort überprüft. Der Benutzerbeitrag wird nicht automatisch gepostet und die Nachricht wird nicht so gesetzt, dass sie nicht gegen die Facebook-Richtlinien verstößt. Soweit ich weiß, kann dies mit den Facebook Open Graph Storys passieren. Ich habe eine "Place" -Option als Open Graph Objekttyp hinzugefügt. Ich weiß, dass meine App dazu die Berechtigung "publish_actions" benötigt und meine App sich im Entwicklermodus befindet. Das ist also nicht das Problem. Ich benutze Facebook Javascript SDK. So geht der Code wie folgt:Facebook Check-In-Button für meine Website

Dies ist die OG-Markup (gegeben durch 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" /> 

und dies ist die Funktion, die den Anteil Dialog aufruft (auch von Facebook angegeben):

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'); 
     } 
    ); 
} 

und dies ist, wie die Funktion aufgerufen wird:

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

das Problem ist, dass der Code nicht funktioniert nd der Freigabe-Dialog wird nicht geöffnet. Wo ist mein Fehler?

+0

Gibt es ein Skript, das Sie für die Freigabe-Schaltfläche laden sollen? Ich schätze, dass wenn Sie in den Entwicklungswerkzeugen nachsehen, ein 'Uncaught ReferenceError: FB.api nicht definiert (...)' – tymcsilva

+0

Der FB.api() wird aufgerufen, nachdem das Facebook javascript SDK geladen wurde. – webtech

+0

Welche Fehler bekommen Sie in Ihrer Konsole? – tymcsilva

Antwort

0

Schließlich habe ich es nur als Share-Taste erstellt. Mit der Möglichkeit zu überprüfen, ob es wirklich gepostet wird, danach nicht mehr abgebrochen.

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'});