Как вы делаете значок социальной сети? - PullRequest
2 голосов
/ 19 октября 2010

Вы видите их повсюду. Например, кнопки «Твиттер» и «Фейсбук», которые отображаются в блогах и на веб-сайтах, которые отображают несколько «твитов» или «лайков». Все, что мне нужно сделать, это отобразить число из моей базы данных MySQL на основе двух переменных (имя пользователя и идентификатор). Вероятно, было бы полезно как-то зашифровать переменные, чтобы пользователи не могли просто изменить код значка и отобразить номер другого пользователя. Но что еще более важно, мне просто нужно знать, как использовать HTML-код, который вы найдете в значках социальных сетей, и заставить его общаться со скриптом PHP на моем сервере, который будет вычислять число из базы данных на основе переменных, содержащихся в значке.

Любая подсказка, с чего начать?

Редактировать: я не говорю о том, какие значки вы можете найти в stackoverflow, я имею в виду те, которые другие сайты позволяют вам вставлять на ваш блог / сайт. Подобно Digg, вы можете показать, что ваш сайт копали 7000 раз и т. Д.

Ответы [ 2 ]

5 голосов
/ 19 октября 2010

Возможно, вы захотите посмотреть библиотеку GD для PHP и соответствующие учебные пособия.По сути, все эти значки состоят из статического изображения в виде шаблона с вставленным сверху динамическим текстом, обычно состоящим из имени пользователя и числа (лайки, твиты и т. Д.).

Для кода HTML, вы бы сделали что-то похожее на:

<img src="http://www.yourserver.com/yourscript.php?username=miki&id=1337" />

Это отправит HTTP-запрос GET вашему скрипту, заставив его выполнить.Затем ваш сценарий может обмениваться данными с базой данных, получать информацию о пользователе, использовать GD для вставки этого текста в шаблон, а затем возвращать его в браузер с правильным типом MIME и содержимым.

2 голосов
/ 19 октября 2010

По сути, вы говорите о вызове удаленного скрипта.

Я полагаю, вы имеете в виду что-то вроде этого - Вы просматриваете свой профиль на вашей стороне. У вас есть виджет, который обещает отображать общее количество баллов, например, у вас. Вы предлагаете кнопку «код», например, YouTube для вставки или Facebook «как» Пользователь щелкает по нему, получает фрагмент кода и, как ожидается, сможет вставить его в любое место в Интернете, где это применимо, и код сгенерирует значок или что-то подобное, предположительно, с именем пользователя и его точками.

Во-первых, вы можете сделать это несколькими способами. Наиболее экономически эффективным, на мой взгляд, является создание пользовательской кнопки на вашем сервере при обновлении - например, скажем, ваши баллы означают «количество больших пальцев полученных статей», поэтому это будет целочисленное значение. Каждый раз, когда вы получаете большие пальцы, вы бы повторно кэшировали кнопку и записывали ее в простой текстовый файл. Если у вас все хорошо, вы бы записали его на изображение и сгладили в формате jpg или gif. Если вы не знаете, как это сделать, вы можете записать его в html и сохранить файл как специфический для пользователя «slug», такой как md5 (имя пользователя). не нужно накапливать пропускную способность с избыточными запросами и поиском аккаунта. Вы обслуживаете только оптимизированное изображение или HTML-файл.

Второе - вы можете дать пользователю iframe с html-кодом. Как правило, это «нравится» в Facebook для людей, которые не используют метод fbml. Проблема в том, что многие сайты рассматривают фреймы как потенциальную атаку xss и удаляют их. Таким образом, для того, чтобы использовать iframe, вы должны иметь контроль над доменом, что может нарушить цель вашего запроса, если вы хотите поделиться своими вкусностями в профиле.

В-третьих, вы можете вызвать на своем сервере файл js, который выполняет ajax-вызов вашей базы данных и передает результаты. Это также, скорее всего, будет рассматриваться как атака xss, и вам, вероятно, не стоит даже больше думать об этом.

Я упомянул методы iframe и js на тот случай, если вы хотите предоставить возможность другим людям, которые управляют своими собственными сайтами. Способ «нравится» используется владельцами сайтов, чтобы показать, сколько раз их домен был «любим», и так далее. Эти люди контролируют домены, поэтому методы iframe и js логичны.

Итак - Этот ответ может не иметь ничего общего с исходным кодом для вас, но он должен помочь вам начать. Я бы сделал метод изображения, так как это безопаснее. Вы бы дали пользователю тег изображения с его слагом в атрибуте src. Они могут вставить его куда угодно, и нет способа переписать число на изображении. Большинство форумов и мест, где вы можете просто публиковать посты других людей, разрешают изображения. Просто выполните поиск в Google для рисования изображений с помощью php, а также используйте библиотеку imagemagick для объединения текста и изображений.

...