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?
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
Der FB.api() wird aufgerufen, nachdem das Facebook javascript SDK geladen wurde. – webtech
Welche Fehler bekommen Sie in Ihrer Konsole? – tymcsilva