2016-07-14 18 views
0

Mit der PHP GD Bild-Bibliothek habe ich erfolgreich ein Bild mit Text von URL-Parametern (a, b, c) ausgegeben.Share PHP GD-erzeugtes Bild auf Facebook

Ich muss in der Lage sein, diese Bilder an die Facebook-Sharing-URL zu senden, damit sie an soziale Medien gesendet werden können.

Allerdings scheint der Sharing-Link meine PHP-Parameter nicht zu akzeptieren. Wenn ich die URL teste, zieht sie das Bild, sendet aber keine Zahlen, so dass kein Text übertragen wird.

Gibt es eine Möglichkeit, das komplette Bild mit Parametern zu speichern und es an die Facebook-Sharing-URL zu senden? Ich mache das über einen in E-Mails eingebetteten Link, so dass es nichts komplizierteres als einfaches HTML verwenden kann.

Antwort

0

Also habe ich schließlich das lösen. Nachdem ich aufgegeben hatte, ein PHP-Bild mit den URL-Parametern an Facebook zu senden, versuchte ich, das Bild in eine E-Mail zu stellen. Dies funktionierte in fast jedem Client gut, mit Ausnahme von Gmail. Ich musste die URL-Parameter konvertieren, um den Gmail-Proxy zu umgehen, der die Anzeige des Bildes ermöglichte UND es war nun auch im Facebook-Sharer nutzbar. Doppelter Hurra!

Die ursprüngliche Art, wie ich es einrichten hatte, war das PHP-Bild mit URL-Parametern zu verknüpfen und $_GET verwenden sie auf dem Bild zu platzieren:

Skript-wrong.php

$var1 = $_GET['a']; 
$var2 = $_GET['b']; 
$var3 = $_GET['c']; 

Die richtige Weg, dies zu tun, ist die folgende:

script.php

$uri = $_SERVER['REQUEST_URI']; 
$path = substr($uri, strpos($uri, "a=")); // start your url parameters here 
$delim = 'abc=&'; // enter all characters you use in parameters (a, b, c, =, &) 
$tok = strtok($path, $delim); 
$tokens = array(); 
while ($tok !== false) { 
    array_push($tokens, $tok); 
    $tok = strtok($delim); 
} 

$var1 = $tokens[0]; 
$var2 = $tokens[1]; 
$var3 = $tokens[2]; 

Dies ist der Blick auf die URL und ziehen Sie die angegebenen Zeichen ($ delim) daraus in ein Array zu platzieren. Setzen Sie dann mit dem, was diesen Zeichen folgt, ihren Wert auf ein Token und platzieren Sie dieses Token auf dem Bild.

Hier ist, wie ich mein php Bild einrichten in der E-Mail angezeigt werden:

<img src="http://example.com/script.php/a=1&amp;b=2&amp;c=3"> 

Und meinen Anteil URL:

https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php/a=1%26b=2%26c=3 
2

Sie müssen wahrscheinlich Ihre URL so codieren, dass die?, = Und & nicht von facebooks PHP-Skript gelesen werden.

Weitere Informationen zur Codierung finden Sie unter here.

? 3F% = ist% 3D und & ist% 26

So Ihre URL wäre:

https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php%3Fa%3D1%26b%3D2%26c%3D3 

Hinweis: Ich kann das nicht getestet habe, wie ich auf Facebook posten nicht wollen :)

+1

Haha, kein Problem. Zuvor, als ich es versuchte, erschien die URL als? A = 1, der Rest fehlte. Nach dem Codieren erscheint die URL nun als & alpha; a = 1 & b = 2 & c = 3, was die vollständige URL ist. Dem Bild fehlt jedoch immer noch Text.Obwohl die vollständige URL abgerufen wird, scheint es nicht den Text auf dem Bild zu generieren. Caching-Problem? Es zieht das Hintergrundbild, also muss es das Skript laufen lassen, sonst wäre alles leer. – cul8r

+0

@ cul8r irgendeinen Erfolg? Ich stehe vor dem gleichen Problem. –

+0

@IgorO ja eigentlich! Ich habe die Frage mit der Art und Weise aktualisiert, wie ich das gelöst habe. – cul8r