Как получить доступ к Facebook из командной строки в Linux

Источник: rus-linux
Dan Nanni

Сегодня страница Facebook представляет собой микс из сложного динамического контента, постоянно обновляемого из вашей ленты, обновлений статуса ваших друзей, уведомлений, онлайн-чатов и так далее.
Хотя эта сложная смесь может быть результатом тщательно отработанных проектных решений команды Facebook, для нас она только замедляет работу браузера. Например, не удивляйтесь, что загрузка страницы Facebook в браузере инициирует более дюжины TCP подключений к различным конечным точкам (Facebook CDN, Akamai, сторонние рекламодатели и т.д.).

открытые соединения

Если вы точно знаете, что вам нужно в Facebook, то можете в качестве альтернативы попробовать намного более легковесный клиент Facebook командной строки fbcmd. Используя командный интерфейс fbcmd, вы можете делать почти все, что вы делаете на Facebook, но без загрузки лишнего динамического контента.

В этом руководстве я опишу, как получить доступ к Facebook из командной строки Linux, используя fbcmd.

Подготовка

Сначала необходимо установить интерфейс командной строки для PHP.

В Debian, Ubuntu:

$ sudo apt-get install php5-cli php5-curl

В Fedora, CentOS или RHEL:

$ sudo yum install php-cli

После установки проверьте, что PHP5 у вас установлен с поддержкой curl.

$ php -r 'echo phpversion();' 5.5.7 $ php -r 'phpinfo();' / grep -i curl /etc/php.d/curl.ini, curl cURL support => enabled cURL Information => 7.32.0

Установка fbcmd в Linux

Скачайте fbcmd_update.php:

$ wget https://raw.github.com/dtompkins/fbcmd/master/fbcmd_update.php

Для подготовки установки fbcmd запустите команду:

$ php fbcmd_update.php

Она создаст директорию ~/.fbcmd, в которой будут храниться файлы настроек.

создание директории ~/.fbcmd

Теперь запустите две нижеприведенные команды для установки fbcmd по стандартной схеме (т.е. в директории /usr/local/lib и /usr/local/bin).

$ sudo php fbcmd_update.php sudo $ php fbcmd_update.php

установка fbcmd

В завершение убедитесь, что директория /usr/local/bin включена в вашу переменную окружения PATH.

Настройка fbcmd в Linux

Однократная первоначальная настройка fbcmd выполняется в три этапа.

Этап 1: Предоставьте fbcmd базовый доступ к своему аккаунту Facebook. Для этого просто запустите команду fbcmd как обычный пользователь.

$ fbcmd

Команда выведет Facebook URL, как показано ниже. Скопируйте этот URL и вставьте его в браузер.

Facebook URL

После авторизации в аккаунте Facebook вы увидите приведенное ниже окно. Кликните "Okay" для завершения процесса базовой авторизации.

Facebook в браузере

Этап 2. Получите код авторизации от Facebook, чтобы обеспечить доступ к своему аккаунту оффлайн. Для этого перейдите по адресу http://www.facebook.com/code_gen.php?v=1.0&api_key=42463270450 в браузере, и сгенерируйте одноразовый код авторизации.

одноразовый код авторизации

Этот код будет действителен в течение ограниченного времени. Если он перестанет действовать, сгенерируйте новый код.
После генерации авторизационного кода запустите приведенную ниже команду, где "XXXXXX" - ваш код авторизации. Вы должны увидеть "AUTH code accepted".

$ fbcmd auth XXXXXX

получение доступа

Этап 3. Получение дополнительных привилегий для управления аккаунтом Facebook.

Для этого перейдите по этому URL в браузере. Вас попросят подтвердить получение дополнительных привилегий для различных опций. Продолжайте нажимать "Okay", пока процесс не завершится. Не бойтесь. Эти действия не дадут доступа к вашему аккаунту какому-либо постороннему пользователю. Все эти привилегии относятся только к вашему аккаунту Facebook.

получение доступа

На этом настройка fbcmd завершена.

Основы работы с fbcmd

Для верификации полученных привилегий запустите приведенную ниже команду, которая покажет ваш статус.

$ fbcmd showperm

верификация доступа

Ниже приведены основные команды для работы с вашим аккаунтом.

Для отправки сообщения в вашу стену:

$ fbcmd post "Hello, world!"

Для отправки сообщения в стену пользователя peter:

$ fbcmd target peter post "Hello, Peter!"

Для просмотра текущего статуса ваших друзей:

$ fbcmd fstatus

Для вывода списка ваших друзей, находящихся в настоящее время онлайн:

$ fbcmd fonline

Для просмотра лент ваших друзей:

$ fbcmd stream

Для отправки комментария к новости #5 из ленты вашего друга:

$ fbcmd comment 5 "This is funny"

Чтобы поставить лайк новости #3 из ленты вашего друга:

$ fbcmd like 3

Полный список команд имеется в официальной документации.

документация

Исправление ошибок в работе fbcmd

1. Если вы получите приведенное ниже предупреждение о часовом поясе от PHP, задайте ваш часовой пояс в файле php.ini, который находится в /etc/php.ini (системы на базе RedHat) или /etc/php5/cli/php.int (системы на базе Debian).

PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the
 date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the
 timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /usr/local/lib/fbcmd/fbcmd.php on line 1207

Например, в Fedora:

$ sudo vi /etc/php.ini date.timezone = "America/New_York"

Для того, чтобы получить строку с часовым поясом вашего региона, можно использовать команду tzselect.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=35981