Использование Facebook PHP SDK, подключение и настройка
Основная проблема тех, кто начинает работать с Facebook SDK, это наличие предыдущего опыта работы с другими сторонними API и SDK. Просто забудьте все, что знали раньше :). Внутренний мир разработчиков facebook богат и многообразен, потому простых решений вы тут не увидите.
Т.к. очередная версия SDK устаревает в течении 2 лет (точнее гарантированно работает не более 2-х лет с момента релиза), то лучше читать гайд от самого facebook.
Он вот тут — https://developers.facebook.com/docs/php/gettingstarted
Текущая версия — v2.8. Раз вы пришли сюда, то, видимо, стиль документации facebook сидит у вас где то в печенках :).
Модель работы в общих чертах
Чтобы что то получить/передать через API, нужно, чтобы вы представились Facebook. В конечном счете, всё сводится к тому, что вы должны получить «маркер доступа». Это такой временный ключ.
Существуют разные типы маркеров доступа (да, всё не просто):
Они отличаются во своим возможностям. Типичный подход — использование маркера доступа приложения (МДП).
Но чтобы получить МДП, нужно сначала зарегистрировать приложение.
На момент написания статьи актуальная версия PHP SKD 5.4. Скачать можно здесь — https://github.com/facebook/facebook-php-sdk-v4/. Если выйдет свежая версия, ориентируетесь на месте. После этого можно приступать к написанию кода.
Далее все этапы подробнее.
Регистрация приложения на Facebook
Не так сложно как звучит. Фактически, мы создаём учетную запись, через которую будет производится доступ к API.
Переходите на https://developers.facebook.com/apps/, жмите по кнопе — «добавить приложение». Заполняйте форму (она выше на скриншоте), и вы попадете в карточку вашего только что созданного приложения.
Здесь нам понадобится значение двух полей: идентификатор приложения (app_id) и ключ-секрет (app secret).
Установка PHP SDK Facebook.
Самая свежая версия работает с PHP v5.4. В архиве куча всякого хлама, нас интересует только библиотеки в папке /src/Facebook/.
Создадим для них, к примеру, папку /fb-sdk в корне вашего сайта. Копируем 🙂
Facebook отказывается от языка PHP
Facebook переведет свою виртуальную машину HHVM с языка PHP на созданный на его основе Hack. Причина — слабая совместимость PHP 7 и PHP 5, а также наличие у PHP некоторых недостатков, которые устранены в Hack.
Отказ от PHP
Facebook перестанет использовать язык PHP в своей виртуальной машине Hip Hop Virtual Machine (HHVM), которая предназначена для выполнения программ, написанных на этом языке. Теперь HHVM будет работать с Hack — другим языком, в основе которого лежит PHP. Основной причиной отказа от PHP в HHVM стала слабая совместимость PHP 7 с PHP 5. Версия HHVM 3.24, выпуск которой запланирован на начало 2018 г., станет последним релизом движка, поддерживающим PHP 5.
Версия PHP 7 последовала сразу за PHP 5, без промежуточной PHP 6. В язык были внесены серьезные изменения, в том числе ликвидированы многие недостатки PHP 5, однако не все. В ряде случаев совместимость с предыдущей версией языка была утеряна.
Внедрение Hack
По словам разработчиков, совмещать в HHVM одновременно поддержку PHP 7 и Hack было бы затруднительно — вынужденные компромиссы оказали бы негативное влияние на оба языка. В то время как отдельно Hack можно реализовать в HHVM максимально удачным образом, без оглядки на недостатки архитектуры PHP, от которых сам Hack избавлен практически полностью.
С PHP работает ряд широко известных инструментов для разработки вроде Composer и PHPUnit. Hack поддерживает текущие версии этих инструментов, и отказываться от этой поддержки Facebook не планирует. Однако со временем разработчики намерены создать ряд инструментов, предназначенных именно для работы с Hack. В настоящий момент уже идет разработка библиотеки Hack Standard Library и фреймворка TypeAssert, который будет преобразовывать нетипизированные данные в типизированные. Помимо этого разрабатывается автоматический загрузчик классов, функций и псевдонимов типов.
Компания намерена также развивать сам Hack. В языке появятся структуры данных, похожие на массивы, с простым механизмом контроля соответствия типов. Кроме того, исчезнут деструкторы и ссылки, а также появятся механизмы ликвидации «мусора», повышающие быстродействие.
Что такое PHP
PHP — это скриптовый язык, популярный среди разработчиков веб-приложений, особенно часто используемый для создания серверной части продукта. Один из самых востребованных языков в разработке динамических сайтов, поддерживается большинством хостингов. Может быть использован для создания GUI-приложений. Имеет широкий набор встроенных средств разработки веб-приложений.
PHP был создан датским программистом Расмусом Лердорфом (Rasmus Lerdorf) в 1995 г. Название языка восходит к словосочетанию Personal Home Page, что переводится как «личная домашняя страница». На PHP оказали влияние другие языки, такие как Perl, C, C++, Java и Tcl. Распространяется под собственной свободной лицензией PHP License. Самым распространенным интерпретатором PHP является виртуальная машина Zend Engine с открытым кодом.
Кросспостинг на страницу Facebook с помощью PHP SDK
Многие сайты публикуют в социальных сетях информацию о новых материалах, это можно сделать и для Facebook. Предполагается, что вы уже создали приложение и указали разрешенные хосты для перенаправления OAuth во вкладке «Дополнительно» пункта меню «Настройки». Итак, запускаем сессию функцией session_start(), кому надо, тот может включить вывод ошибок, если он отключен.
Далее загружаем библиотеку PHP SDK (которая есть на github) и извлекаем папку src (которую можно переименовать). Затем указываем путь к автозагрузчику.
Теперь создаем экземпляр класса Facebook.
Вызываем помощника для выполнения авторизации, указываем требуемые разрешения для публикации на странице.
После вас перекинет на сайт Facebook, где нужно будет авторизоваться, затем вы перейдете по ссылке, указанной в фунции getLoginUrl(). Здесь вы в очередной раз вызываете помощника, у которого получаете access_token пользователя.
Если вы попытаетесь постить на страницу с этим токеном, то будет возвращаться ошибка «Permissions error», так как для этого нужен токен страницы. Чтобы его получить, необходимо вызвать функцию get() объекта Facebook и передать ему два параметра: часть url запроса токена страницы, содержащую id страницы, на которую вы хотите постить и полученный ранее access_token пользователя.
Полученный токен будет иметь неограниченный срок действия. Информация о токене доступна через дебаггер. Теперь можно попробовать запостить какое-нибудь сообщение.
Если потребуется, то можно выйти из Facebook.
suhorukov.com
На этом языке работают сервера Вконтакте и Фейсбука
Современный PHP — это давно уже не просто язык для создания динамически обновляемых страничек и небольших сайтов. Сегодня это полноценный инструмент написания и разработки северных приложений. Его популярность в веб-среде, простота освоения и широчайший арсенал инструментов, фреймфорков позволяет даже начинающему разработчику создавать весьма серьезные проекты. Однако, в среде «серьезных» программистов отношение к нему нелестное. О том, что же такое современный PHP, как создаются настоящие серверные приложения, и как стать профи, мы поговорим с преподавателем курса PHP Дмитрием Наседкиным.
Расскажите немного о себе. Как и почему вы выбрали PHP?
Случайно. Во время учебы на 3-4 курсах я начал искать работу. Поиск шел тяжело, я уже даже отчаялся что-то найти, но тут на мое резюме пришел отклик из веб-студии, которой требовался junior PHP-программист. Мне дали задание, над которым я прокорпел все выходные, даже чуть больше. Надо сразу оговориться, что к тому моменту с PHP я сталкивался только на лабораторных работах в ВУЗе. Однако высланный мной результат работодателя устроил — меня приняли. В итоге, в студии я проработал 2 года: занимался разработкой сайтов и их серверных частей.
Вот так я попал в эту сферу, о чем нисколько не жалею. Сейчас это динамически развивающаяся среда, очень востребованная. Так что знания в области PHP пригодятся всегда.
А над чем работаете сегодня?
В данный момент я работаю над очень интересными вещами. После веб-студии я устроился в компанию Alawar, это крупнейший разработчик компьютерных игр. В ней я занимаюсь разработкой платформ для направления дистрибьюции. Если говорить более конкретно, то сайт — это внешняя витрина, платформа же включает в себя внутренние сервисы компании, платежные шлюзы, разные обертки-врапперы к играм и так далее. И все эти модули разрабатываются именно на PHP. Вот этим я и занимаюсь.
Что такое язык PHP вообще и современный PHP в частности? Насколько активно он развивается?
В первую очередь, это серверный язык. Написать на нем какое-то десктоп приложение можно, но, скорее, в качестве забавы или тренировки. На PHP пишут серверные части тех же игр, например. Большинство современных игрушек — это клиент-серверные приложения, у которых есть клиент, который посылает и сохраняет данные на сервере, и есть, собственно, сервер, который все это обрабатывает и хранит. Вот, как раз, она-то и разрабатывается на PHP. Сайты сегодня тоже перестают быть «простыми», они все больше и больше превращаются в «веб-сервис»: почта, чат, социальные сети, серверные части игр и т.д. и т.п. А это уже вотчина PHP.
Что до динамики развития, то она, действительно, очень высокая. Сейчас уже вышел PHP7. Если смотреть на его историю, то изначально, это был просто скриптовый язык для встраивания некоторых динамических данных в HTML-разметку. Затем, по мере развития, в него начали внедрятся зачатки ООП (это уже видно в версии PHP4) которое широко применяется в С++ и Java. Сейчас на «календаре» эра PHP5 — это актуальная и самая распространенная версия, где ООП стандарт де факто. На подходе внедрение PHP7, где реализованы все самые современные веяния в области программирования, значительно улучшен показатель производительности и т.д.
Выходит, PHP универсален, эдакий «английский» в сфере программирования? А можете назвать ограничения для этого языка?
Любой компьютерный язык — это инструмент, решающий конкретные задачи. И PHP не исключение — он должен применяться там, где будет максимально эффективен. Альтернативы, конечно, есть — это другие серверные языки типа Python, да та же Java. Если же говорить о недостатках, то «узкими» местами я бы назвал распараллеливание, т.е. решение нескольких задач одновременно. Да и по производительности есть языки, работающие быстрее, С++, например. Это связано с тем, что PHP — интерпретированный язык, компилляции, ускоряющей работу, у него нет. Однако и задачи, где эти моменты критичны, встречаются не часто, поэтому в большинстве случаев PHP прекрасно справляется.
Какой объем знаний и умений должен иметь разработчик для хорошего старта? А какие ему могут потребоваться для дальнейшего развития?
На первых порах будет достаточно собственно PHP и его конструкций, а также умения их применять. Тут даже ООП не потребуется: для разработки каких-то простейших сайтов и приложений этого вполне хватит. Как раз на веб-разработке можно отточить все навыки, применить на практике знания, которые были получены на обучении. Для дальнейшего развития и роста знаний чистого PHP уже недостаточно. Современные приложения разрабатываются на различного рода PHP Framework или специальных инструментах, которые существенно ускоряют и упрощают разработку. Соответственно, дальнейший рост специалиста связан с изучением и применением этих самых Framework’ов. На следующей ступени можно начать разрабатывать архитектуру, т.е. выстраивать решения под конкретные задачи заказчика. Здесь уже и знания «каркасов»-фреймфорков будет недостаточно. А дальше — все зависит от разработчика.
Что нужно знать и уметь, чтобы начать изучать PHP?
PHP — один из языков с самым низким «порогом входа». По большому счету, достаточно быть уверенным пользователем компьютера, иметь желание научиться, — и вы вполне можете начать программировать. Возможно, именно из-за этой простоты представители более «серьезных» языков относятся к ПэХэПистам с некоторой предвзятостью. Корни такого отношения можно искать именно в весьма далеком от идеала коде начинающего ПеХеПе-программиста. Поэтому говорю сразу: несмотря на легкость освоения, не следует останавливаться на достигнутом, красота и стройность конструкций приходят только с опытом.
Мне кажется, что относясь к PHP предвзято, ваши коллеги немного забывают, на чем работают сервера крупнейших социальных сетей: Вконтакте и Фэйсбук. Это правда?
Да, Вконтакте изначально писался на PHP. Затем наступил момент, когда производительности языка стало не хватать (я говорил об «узких» местах выше) и специалисты Вконтакта создали свою собственную версию PHP. Она работает в несколько «урезанном» варианте, но за счет этого более производительна и выдерживает все те нагрузки, которые дает большая социальная сеть на сервера. Аналогичное решение есть и у Фейсбука, который тоже был написан на PHP. Там была создана целая виртуальная машина, которая компилирует код, за счет чего он выполняется много быстрее.
Дмитрий, выше вы говорили о Фреймворках в PHP. Могли бы вы рассказать что же это такое чуть более подробно? У всех на слуху Yii, но что это такое, как фреймворк знают немногие. Что это, для чего их используют, где?
Упрощенно PHP фреймфорк — это некоторый программный каркас, написанный PHP. Веб-приложения, созданные с помощью фреймфорков, имеют строго определенную структуру, за счет этого значительно упрощается их разработка и поддержка. Yii — всего лишь один из достаточно большого семейства подобных «каркасов». Среди остальных он выделяется более высокой производительностью, хорошей документацией, большим количеством различных расширений. Все это поспособствовало его широкому применению для создания различного рода веб-приложений. Также, помимо Yii весьма популярны Symfony, Zend и Silex.
Используется ли PHP где-то еще кроме веб? Неужели связка «PHP-сайт-интернет сервер» единственный путь развития?
PHP — это, в первую очередь, серверный язык, поэтому основная его сфера применения все-таки создание серверной части различный веб-приложений.
В IT-Академии вы ведете курс PHP, можете рассказать о нем подробнее? Какая подготовка потребуется от слушателя для его успешного прохождения?
Курс будет начинаться с азов: разберем, что такое сервер, что такое клиент, и как они работают. Поэтому каких-то специальных знаний не нужно, главное — желание во всем разобраться. Конечно, первичные навыки программирования, хотя бы на уровне школьной информатики, и программ типа Hello world!, будут очень кстати.
Относительно содержательной части, то будут последовательно рассмотрены все базовые возможности языка, а также затронуты и более серьезные аспекты, такие как ООП, взаимодействие с БД, использование фреймворков. В качестве бонуса участники курса познакомятся и попробуют начать работать с системой контроля версий GIT, узнают что такое MySql, Apache и научатся их базовой настройке. Другими словами, я постараюсь дать самые разносторонние знания и навыки, которые позволят молодому специалисту быть эффективным и сразу же приступить к работе.
Facebook API *
Работа с APi Facebook
Верификация для доступа к API Instagram
Примерно с мая месяца Facebook разрешил подключения к API обмена сообщениями с Instagram, но процедура подключения несколько запутанная. Под катом некоторые нюансы и шишки прохождения процедуры верификации приложения для работы с сообщениями Instagram.
API обмена сообщениями с Instagram ничем не отличается от API обмена сообщениями с Facebook, только в теле сообщения в параметре platform будет указано «Instagram», в отличии от сообщения с Facebook, для которого в platform будет указано «page».
А вот процедура верификации приложения в случае Instagram имеет несколько отличий от верификации в случае Facebook.
1. Так же как и с Facebook, настраиваем Вебхук на наш бекэнд, только в разделе Instagram, генерируем токен, и прописываем токен на стороне бекэнда, проверяем, что вебхук подтвердился.
Марк Цукерберг хочет преобразовать Facebook во вселенную виртуальной реальности
Статья BBC, в которой Марк Цукерберг излагает свое видение преобразования Facebook в следующие пять лет из социальной сети в «компанию метавселенной»
Метавселенная – это онлайн-мир, в котором люди могут играть, работать и общаться в виртуальной среде, используя гарнитуры дополненной реальности (VR). Генеральный директор Facebook описал это, как интернет, в котором вы не просто просматриваете контент. Люди не должны жить в «маленьких светящихся прямоугольниках», их заставляют взаимодействовать не так, как им удобно”, – сообщил он журналу Verge, говоря о мобильных телефонах.
Как сохранить социальное доказательство при настройке новых объявлений в Facebook Adsс помощью Post ID?
На сегодняшний день Facebook Ads – это самый эффективный инструмент для привлечения потенциальных клиентов и генерации продаж. Это, в свою очередь, приводит к росту конкуренции на рекламной площадке, а также к росту стоимости размещения объявления. Теперь чтобы показать рекламное объявление своей целевой аудитории и получить переход на сайт, приходится платить больше.
Отличным способом повысить эффективность рекламной кампании является социальное доказательство или social proof. О том, что это такое, и как использовать его для улучшения показателей рекламных кампаний в Facebook, расскажем в данной статье.
Как узнать, кто отписался в Instagram? И почему мобильные приложения больше не работают
Если раньше узнавать, кто на тебя подписался или отписался можно было через десяток мобильных приложений, то в этом году Instagram анонсировал новость, что с октября такую возможность для сторонних приложений они закрывают. Вместе с этим и закрывается возможность массовых подписок/отписок.
Как же теперь следить за подписчиками?
Цукерберг запустил Shops. Instagram и Facebook постепенно становятся магазинами
Все крупнейшие платформы пытаются стать интернет-магазинами. У Google есть Google Shopping, у «Яндекса» — «Маркет», у VK – Business. Facebook c Instagram тоже долго двигались в том направлении. Но сегодня в ходе лайв-стрима Марк Цукерберг представил Shops — новый способ для бизнесов бесплатно открывать магазины в Facebook и Instagram. Даже собственного сайта создавать не нужно.
Анализируйте свои сборки программно с помощью C ++ Build Insights SDK
Рады рассказать о выпуске C++ Build Insights SDK, фреймворка, который дает вам доступ к информации о времени сборки MSVC через API C и C++. В дополнение к этому выпуску мы публикуем vcperf open source на GitHub. Поскольку сам vcperf построен с использованием SDK, вы можете использовать его в качестве справочного материала при разработке собственных инструментов. Мы будем рады увидеть, какие приложения вы будете создавать с помощью SDK, и мы с нетерпением ждем ваших отзывов!
Эволюция обработки вебхуков Facebook: с нуля до 25 000 в секунду
Скорее всего, рассказывать, что такое вебхуки (webhooks) — никому не нужно. Но на всякий случай: вебхуки — это механизм оповещения о событиях во внешней системе. Например, о покупке в интернет-магазине через онлайн-кассу, отправке кода в GitHub-репозиторий или действиях пользователей в чатах. В типичном API нужно постоянно опрашивать сервер, написал ли пользователь что-нибудь в чате. С помощью механизма вебхуков можно «подписаться» на оповещения, и сервер сам отправит HTTP-запрос, когда произойдет событие. Это удобнее и быстрее, чем постоянно запрашивать новые данные на сервере.
ManyChat — это платформа, которая помогает бизнесу общаться со своими клиентами через чаты в мессенджерах. Вебхуки — одна из важных частей ManyChat, потому что именно через них бизнес общается с клиентами. А общаются они много — например, через систему бизнесы отправляют своим клиентам миллиарды сообщений в месяц.
Основная масса сообщений отправляется через Facebook Messenger. У него есть особенность — медленный API. Когда клиент пишет сообщение, чтобы заказать пиццу, Facebook отправляет в ManyChat вебхук. Платформа его обрабатывает, отправляет запрос обратно и пользователь получает сообщение. Из-за медленного API некоторые запросы идут несколько секунд. Но когда платформа долго не отвечает, бизнес теряет клиента, а Facebook может отключить приложение от вебхуков.
Поэтому обработка вебхуков — это одна из главных инженерных задач платформы. Чтобы решить проблему, в ManyChat за три года работы несколько раз меняли архитектуру обработки с простого контроллера в Yii до распределенной системы с «Галактиками». Подробнее об этом под катом расскажет Дмитрий Кушников (@cancellarius).

















