it-swarm.com.de

Willst du benutzerdefinierte Titel / Bild / Beschreibung in Facebook Link von einem Flash-App

Mögliches Duplikat:
Wie wählt Facebook Sharer Bilder aus?

Ich mache eine Flash-App, die potenzielle Verkehrsverletzungen beim Fahren mit unterschiedlichen Geschwindigkeiten demonstriert. Ich möchte, dass der Nutzer diese Informationen auf Facebook teilen kann. Dies erfordert jedoch, dass ich den Text, der auf Facebook erscheinen wird, auf irgendeine Weise anpassen kann.

Ich erstelle eine URL, die in einem leeren Fenster geöffnet wird (über die Flash-App selbst). Ich gebe die Parameter u und t an und setze die generierte Nachricht als t-Parameter. Dies scheint jedoch immer durch den Seitentitel überschrieben zu werden. Wenn ich das Title-Tag im HTML-Code weglasse, wird der Dateiname verwendet (der angegebene Titel wird ebenfalls überschrieben).

 http://www.facebook.com/sharer.php?u=http://espentokerud.com/face/addiste.html&t=test; 

Ich habe auch versucht, die URL zu codieren, aber ohne Erfolg.

 http://www.facebook.com/sharer.php?u=http%3a%2f%2fespentokerud.com%2fface%2faddiste.html&t=test; 

Ich habe auch versucht, die Addthis-API zu verwenden, habe aber die gleichen Mängel festgestellt. Das Lustige ist, dass, wenn ich einen SWF poste, der Titel und die Beschreibung angepasst werden können und es auch möglich ist, einen Screenshot anzugeben. Aber wenn ich keinen SWF poste, scheint dies ignoriert zu werden.

Ich bin mir bewusst, dass ich Meta-Tags auf der HTML-Seite verwenden kann, um das Miniaturbild, den Titel und die Beschreibung anzugeben, aber ein Teil dieses Inhalts muss auf Berechnungen in der Flash-App basieren.

54
Ezop

2016 Update

Verwenden Sie den Sharing Debugger , um herauszufinden, wo Ihre Probleme liegen.

Stellen Sie sicher, dass Sie den Facebook-Richtlinien folgen Best Practices für den Austausch .

Stellen Sie sicher, dass Sie Open Graph Markup korrekt verwenden.

Ursprüngliche Antwort

Ich stimme dem zu, was hier bereits gesagt wurde, aber gemäß Dokumentation auf der Facebook-Entwicklerseite , möchten Sie möglicherweise die folgenden Meta-Tags verwenden.

<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />

Wenn Sie Ihr Ziel mit Meta-Tags nicht erreichen können und eine URL-eingebettete Version benötigen, lesen Sie bitte @ Lelis718's Antwort unten .

65
Snekse

Ich denke, diese Seite hat die Lösung, ich werde es jetzt testen. Es sieht so aus, als ob Facebook die Parameter von share.php geändert hat. Um also Text und Bilder des Freigabefensters anzupassen, müssen Sie Parameter in ein "p" -Array einfügen.

http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

Hör zu.

29
Lelis718

Ich hatte vor einer Woche das gleiche Problem.

Zunächst ist mir aufgefallen, dass Ihre URL ein kaufmännisches Und vor der Parameterzeichenfolge enthält. Wahrscheinlich muss die Parameterzeichenfolge jedoch mit einem Fragezeichen beginnen, gefolgt von einem kaufmännischen Und zwischen den einzelnen zusätzlichen Parametern.

Jetzt müssen Sie Ihre URL entkoppeln, aber auch die URL-Parameter (Titel oder anderer Inhalt, den Sie in der Freigabe bereitstellen müssen), die Sie an die URL übergeben, doppelt entkoppeln:

var myParams = 't=' + escape('Some title here.') + '&id=' + escape('some content ID or any other value I want to load');
var fooBar = 'http://www.facebook.com/share.php?u=' + escape('http://foobar.com/superDuperSharingPage.php?' + myParams);

Nun müssen Sie die oben verlinkte superDuperSharingPage.php erstellen, die den gewünschten dynamischen Titel, die Beschreibung und den Bildinhalt enthalten soll. So etwas sollte ausreichen:

<?php
    // get our URL query parameters
    $title = $_GET['t'];
    $id = $_GET['id'];
    // maybe we want to load some content with the id I'll pretend we loaded a
    // description from some database in the sky which is magically arranged thusly:
    $desciption = $databaseInTheSky[$id]['description'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title><?php echo $title;?></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="title" content="<?php echo $title;?>" />
  <meta name="description" content="<?php echo $desciption;?>" />
  <!-- the following line redirects to wherever we want the USER to land -->
  <!-- Facebook won't follow it. you may or may not actually want || need this. -->
  <meta http-equiv="refresh" content="1;URL=http://foobar.com" />
</head>
<body>
  <p><?php echo $desciption;?></p>
  <p><img src="image_a_<?php echo $id;?>.jpg" alt="Alt tags are always a good idea." /></p>
  <p><img src="image_b_<?php echo $id;?>.jpg" alt="Make the web more accessible to the blind!" /></p>
</body>
</html>

Lassen Sie mich wissen, ob dies für Sie funktioniert, es ist im Wesentlichen das, was für mich getan hat :)

4
defines

Ich habe ein Joomla-Modul, das Inhalte anzeigt ... und ich möchte diese Inhalte auf Facebook freigeben können und nicht die Titel-Meta-Beschreibung der Seite .... Meine Problemumgehung besteht darin, eine geheime .php-Datei auf dem Server zu haben, die ausgeführt wird wenn es die FBs erkennt

$_SERVER['HTTP_USER_AGENT']

if($_SERVER['HTTP_USER_AGENT'] != 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)') {
    echo 'Direct Access';
} else {
    echo 'FB Accessed';
}

und übergebe Variablen mit der URL, die diese bestimmte Seite mit dem Titel und der Meta-Beschreibung des Elements formatiert, das ich aus meinem Joomla-Modul freigeben möchte ...

ein name="fb_share" share_url="MYURL/sharer.php?title=TITLE&desc=DESC"

hoffe das hilft...

2
petsoukos

Ich habe tatsächlich ein ähnliches Problem. Ich habe eine Seite mit mehreren Optionsfeldern. Mit jeder Schaltfläche werden die Meta-Tags für Titel und Beschreibung der Seite festgelegt. Bei Änderungen wird JavaScript verwendet.

Wenn Benutzer beispielsweise die erste Schaltfläche auswählen, wird in den Metatags Folgendes angezeigt:

<meta name="title" content="First Title">
<meta name="description" content="First Description">

Wenn der Benutzer die zweite Schaltfläche auswählt, werden die Meta-Tags folgendermaßen geändert:

<meta name="title" content="Second Title">
<meta name="description" content="Second Description">

... und so weiter. Ich habe bestätigt, dass der Code über Firebug einwandfrei funktioniert (d. H. Ich kann sehen, dass diese beiden Tags ordnungsgemäß geändert wurden).

Anscheinend zieht Facebook Share nur die Meta-Tags für Titel und Beschreibung ein, die beim Laden der Seite verfügbar sind. Die Änderungen an diesen beiden Tags nach dem Laden der Seite werden vollständig ignoriert.

Hat jemand eine Idee, wie man das löst? Das heißt, Facebook wird gezwungen, die neuesten Werte abzurufen, die sich nach dem Laden der Seite ändern.

2
user318983

Sie können nicht, es unterstützt es einfach nicht.

Ich muss fragen, warum diese Berechnungen nur in der Flash-App durchgeführt werden müssen.

Sie müssen zu einer URL navigieren, die sich eindeutig auf die Metadaten bezieht, die Sie von der Flash-App erhalten. Ansonsten, wie würde die Flash-App wissen, um die Werte abhängig von der URL, die Sie getroffen haben, zu erhalten.

Optionen sind:

  • auf der Seite berechnen: Wenn Sie die Seite bereitstellen, müssen Sie dieselben Berechnungen auf dem Server durchführen und den Titel usw. auf den Seitenmetadaten senden.
  • Senden von Metadaten in der Abfragezeichenfolge an Ihre Site: Wenn Sie die Berechnung wirklich vom Server fernhalten müssen, besteht ein alternativer Trick darin, die Metadaten explizit in der URL festzulegen, über die die Benutzer zu Ihrer Site gelangen Facebook. Wenn Sie die Seite bearbeiten, kopieren Sie sie einfach in die Metadatenabschnitte zurück (vergessen Sie nicht, sie entsprechend zu codieren). Dies ist aufgrund der Beschränkungen der URL-Größe eindeutig begrenzt.
  • Senden Sie die Berechnungsergebnisse in der Abfragezeichenfolge an Ihre Site: Wenn diese Berechnungen nur ein paar Zahlen enthalten, die in den Metadaten verwendet werden, können Sie auch nur diese in die Abfragezeichenfolge der URL einfügen, auf die die Benutzer klicken zurück zu Ihrer Site. Dies führt mit größerer Wahrscheinlichkeit nicht zu Problemen mit den URL-Größen.

re

Warum ist das verärgert? Es ist falsch. Sie KÖNNEN - es wird IS unterstützt, um benutzerdefinierte Titel, Beschreibungen und Bilder zu Ihrer Freigabe hinzuzufügen. Ich mache es die ganze Zeit. - Dustin Fineout vor 3 Stunden

Der OP gab sehr deutlich an, dass er bereits wusste, dass man das von einer Seite aus bedienen kann, wollte aber die Werte direkt an Facebook weitergeben (nicht über die Zielseite).

Beachten Sie außerdem, dass ich 3 verschiedene Optionen angegeben habe, um das Problem zu umgehen. Eine davon haben Sie später als Antwort veröffentlicht. Ihre Wahl ist nicht, wie das OP es versucht hat, es ist nur eine Problemumgehung aufgrund von Facebook-Einschränkungen.

Schließlich sollten Sie genau wie ich erwähnen, dass eine bestimmte Lösung fehlerhaft ist, da Sie leicht die URL-Größenbeschränkung treffen können.

0
eglasius