2016-07-14 6 views
0

Используя библиотеку изображений PHP GD, я успешно вывел изображение с текстом из параметров url (a, b, c).Поделиться PHP GD-созданное изображение на Facebook

Мне нужно иметь возможность отправлять эти изображения на ссылку для обмена Facebook, чтобы их можно было отправить в социальные сети.

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

Однако ссылка для обмена данными, похоже, не принимает мои параметры php. Когда я проверяю URL-адрес, он вытягивает изображение, но не отправляет никаких номеров, в результате чего текст не переносится.

Есть ли способ сохранить полное изображение с параметрами и отправить его на ссылку для обмена Facebook? Я делаю это через ссылку, встроенную в электронную почту, поэтому не может использовать ничего более сложного, чем базовый HTML.

ответ

0

Так что в конце концов я решил это решить. После отказа от нажатия php-изображения на Facebook с параметрами url, я попытался поместить изображение в электронное письмо. Это хорошо работало почти у каждого клиента, ЗА ИСКЛЮЧЕНИЕМ Gmail. Мне пришлось преобразовать параметры URL-адреса, чтобы обойти прокси-сервер Gmail, который позволил отображать изображение. И теперь это также можно было использовать в Facebook. Двойной ура!

оригинальный способ, которым я должен был это настроило было связать PHP файл с параметрами URL-адрес и использовать $_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 
2

Скорее всего, вам потребуется кодировать ваш URL-адрес таким образом, чтобы?, = И & не читались php-скриптом facebooks.

См. here для получения подробной информации о кодировании.

? является% 3F = является% 3D и & составляет 26%

Так что ваш URL будет:

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

Примечание: Я не проверял это, как я не хочу, чтобы отправлять сообщения в Facebook :)

+1

Ха-ха, нет проблем. Раньше, когда я пытался, url появился как? A = 1, а остальные отсутствовали. После кодирования URL теперь выглядит следующим образом: a = 1 & b = 2 & c = 3, который является полным URL-адресом. Однако на изображении по-прежнему отсутствует текст.Несмотря на то, что он тянет полный URL-адрес, он, похоже, не генерирует текст на изображении. Проблема кеширования? Это потянет фоновое изображение, поэтому он должен запускать скрипт, иначе все будет пустым. – cul8r

+0

@ cul8r любой успех? У меня такая же проблема. –

+0

@IgorO да на самом деле! Я обновил вопрос так, как я решил это. – cul8r

Смежные вопросы