Дізнатися кількість твітів в twitter, лайків та share в facebook, вконтакте, однокласниках, google на

При створенні одного з сайтів, надійшло незвичне вимоги - замовник захотів виводити крім звичайних блоків лайків сумарне число лайків за трьома соц. мереж: Facebook. Twitter. ВКонтакте. Якщо на сторінці всього один блок з лайками / share, то проблем не виникає, як і в плані самих блоків, так і в плані отримання числа лайків. Для цього просто в JS запити JSON робив. Але на головній сторінці список новин, для кожної з яких потрібен свій блок з кнопками соц. мереж і сумарне число лайків. У слідстві чого вирішили замутити кеш, в якому зберігаються ці числа. Скрипт по перерахунку кожні 10 хвилин запускається. Тобто в php тепер інфу отримувати треба.

Вся робота в php зводиться до багаторазового виклику функції file_get_contents. Хто вже працював з нею, розуміє на скільки це затратно. Функція повертає файл у вигляді рядка. По цьому, при багаторазовому її виклику, скрипт виконується пристойно час.

Для Фейсбуку і Твіттера ще добре, там дані в JSON. А ось в інших доводиться парсити отриману сторінку, через це і виконується довго скрипт.

Приклади написані строго для візуалізації і не містять обробку всіх можливих помилок, які можуть бути при запиті даних зі сторонніх сайтів. Той же фейсбук, наприклад, обмежує кількість вхідних коннектов з одного ip. Так що при багаторазовому зверненні в одному скрипті, він перестане вам відповідати. Також потрібно, щоб була включена налаштування allow_url_fopen в php.ini. Ну і для https сторінок підтримка ssl потрібна (рядок extension = php_openssl.dll в php.ini раскомменьте).

Схожі статті