Facebook generieren Öffnen Sie Graph Meta-Tags dynamisch

Wie der Titel andeutet, versuche ich Facebook Open Graph Metatags dynamisch zu generieren, aber ich kann es nicht funktionieren. Ist es überhaupt möglich?

AKTUALISIEREN:

Schließlich habe ich es mit Hilfe von @saccharine arbeiten lassen. Der folgende Code funktioniert für mich:

 0) { $params = $_GET; } else { $params = $_POST; } // defaults if($params['type'] == "") $params['type'] = "restaurant"; if($params['locale'] == "") $params['locale'] = "en_US"; if($params['title'] == "") $params['title'] = "default title"; if($params['image'] == "") $params['image'] = "thumb"; if($params['description'] == "") $params['description'] = "default description"; ?>         <meta property="og:url" content="http://mysite.com/index.php?type=&locale=&title=&image=&description="/> <meta property="og:type" content="MY_APP_NAME_SPACE:"/> <meta property="og:locale" content=""/> <meta property="og:title" content=""/> <meta property="og:image" content="http://mysite.com/img/.png"/> <meta property="og:description" content=""/>   

Die URL, die ich jetzt in den Facebook-Debugger einfüge, kann beliebige der dynamischen Parameter oder gar keine, alle oder nur eine Auswahl und in beliebiger Reihenfolge enthalten:
http://mysite.com/index.php?type=restaurant&title=luigis
oder dieses:
http://mysite.com/index.php?locale=de_DE&description=hi&type=bistro

Nachdem ich das erreicht habe, kann ich nun Aktionen im Stream des Benutzers veröffentlichen:

 function postRestaurant() { FB.api('me/MY_APP_NAMESPACE:have_lunch?\ start_time=2000-12-12T04:00:00&\ expires_in=7200&\ restaurant=' + encodeURIComponent(getRedirectURI() + '?type=restaurant' + '&description=arnold' + '&title=stalone'), 'post', function (response) { if (!response || response.error) { console.log('postRestaurant: Error occured => ' + response.error.message); } else { console.log('postRestaurant: Post was successful! Action ID: ' + response.id); } }); } 

Klappt wunderbar! :]

    Zunächst möchte ich wiederholen, dass ich fast positiv bin, dass Ihr Problem auf die Tatsache zurückzuführen ist, dass die URL, die Sie in den Debugger übergeben, nicht dynamisch generiert wird. Das URL-Tag fungiert im Wesentlichen als Redirector. Wenn es nicht genau dasselbe ist (dh die Meta-Tags auf dem URL-Meta-Objekt sind die gleichen wie auf der URL, die Sie übergeben) als die URL, die Sie testen, erhalten Sie nicht die Ergebnisse, die Sie suchen.

    Das Meta-Tag

      

    muss dynamisch generiert werden. Der Debugger wird anstelle der dynamisch generierten Seite auf Ihre Standardindexseite umgeleitet.

    Zum Beispiel weise ich jedem verwendeten Objekt eine ID zu und habe so etwas wie das Folgende

      

    Ich gebe diese genaue URL in den Debugger ein, und somit ist die letzte Seite, auf der der Debugger landet, diese exakte URL.

    Auch im Folgenden

      

    Wie wird die Eigenschaft dynamisch generiert? Haben Sie daran gedacht, in Ihrem tatsächlichen Code etwas wie das folgende zu setzen?

      

    Sie scheinen auch alles in die URL zu schieben, was gefährlich ist und große Kopfschmerzen verursachen kann, was hier das Problem sein könnte. Schiebe stattdessen nur eine Sache, zB? Type = bistro und propagiere dann die notwendigen Daten aus der database.

    Ich würde empfehlen, die meisten OG-Tags basierend auf einer object_id dynamisch zu generieren. Speichere die relevanten OG-Informationen für jede object_id und propagiere sie dann, wenn darauf zugegriffen wird. Auf diese Weise können Sie die Tags, die Sie bei der Aktualisierung von OG verwenden, problemlos erweitern und bearbeiten.

    Wenn Sie Probleme mit OG haben, sollten Sie nicht zögern, sie als neue Fragen anstelle von Kommentaren zu posten, da ich garantiere, dass andere Leute auch das gleiche Problem haben.

    Ich bin ziemlich sicher, dass Facebook keine URLs mehr mit Parametern crawlt. Es “verweist” immer auf eine entfernte Version der URL.

    Im OP-Beispiel:

    http://example.com/index.php?type=restaurant&title=luigis

    wird

    http://example.com/index.php

    egal was du tust. Das nächste, was ich zu einer Erklärung gesehen habe, ist folgendes:

     A URL with no session id or extraneous parameters. All shares on Facebook will use this as the identifying URL for this article. 

    Wenn Sie in Ihren Objekttypen auf den Link Code abrufen geklickt haben, haben Sie versucht, den Code, den er Ihnen gegeben hat, einzufügen?
    Ich würde versuchen, in Ihr Web einzufügen, und wenn es funktioniert, replizieren Sie die HTML-Ausgabe.
    Versuchen Sie es ohne das DOCTYPE-Tag.
    Heres ein Beispiel von, was ich bekam, und ich sehe nicht diese Tags oben: fb: app_id, nicht sicher, ob es einen Unterschied macht.
    Sollte die og: url nicht auch die Variablen am Ende enthalten?



    Ja, funktioniert wie ein Zauber, aber braucht etwas für mich. Ich musste eine neue Seite wie folgt erstellen:

     < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">        " />       

    Für Joomla Open Graph Dynamic:

       " />