在 Facebook 上分享 PHP GD 创建的图像

Share PHP GD-created image on Facebook

使用 PHP GD 图像库,我已成功输出带有来自 url 参数 (a, b, c) 的文本的图像。

我需要能够将这些图像发送到 Facebook 共享 url 以便将它们发送到社交媒体。

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

不过分享link好像不接受我的php参数。当我测试 url 时,它会拉取图像,但不会发送任何数字,导致没有文本通过。

有没有办法保存带参数的完整图片并发送到Facebook分享url?我通过电子邮件中嵌入的 link 来执行此操作,因此它不能使用比基本 HTML.

更复杂的任何内容

您可能需要对 url 进行编码,这样 ?、= 和 & 就不会被 Facebook php 脚本读取。

有关编码的详细信息,请参阅here

?是 %3F,= 是 %3D 并且 & 是 %26

因此您的 url 将是:

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

注意:我没有测试过这个,因为我不想 post 到 facebook :)

所以我最终解决了这个问题。在放弃将包含 url 参数的 php 图片推送到 Facebook 后,我尝试将图片放入电子邮件中。除了 Gmail,这几乎适用于所有客户端。我必须转换 url 参数来绕过允许显示图像的 Gmail 代理,并且它现在也可以在 Facebook 共享器中使用。万岁!

我最初设置它的方法是 link 带有 url 参数的 php 图像,并使用 $_GET 将它们放在图像上:

脚本-wrong.php

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

正确的做法如下:

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];

它所做的是查看 url 并从中提取指定字符 ($delim) 以放入数组中。然后使用这些字符后面的内容,将它们的值设置为标记并将该标记放在图像上。

以下是我如何设置我的 php 图片以显示在电子邮件中:

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

还有我的分享URL:

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