Как войти в чат на Facebook
Я смог использовать чат Facebook с внешним приложением, используя следующую информацию:
Сначала найдите свое имя пользователя в Facebook, перейдя по http://www.facebook.com/your_user/. Затем откройте iChat, затем выберите "iChat"> "Настройки" и нажмите вкладку "Аккаунты".
Нажмите на знак + (плюс), чтобы добавить новую учетную запись со следующими настройками:
* Account Type is Jabber Account * Account name is your_user@chat.facebook.com, and enter
ваш пароль * Нажмите стрелку раскрывающегося списка, чтобы открыть параметры сервера. Введите chat.facebook.com в качестве имени сервера. * Введите 5222 в качестве порта и нажмите Готово.
Нажмите Готово еще раз, и все готово.
Прочитав это, кажется, что можно было бы войти в чат Facebook. Я пытался, но не смог. Является ли это возможным? Как?
3 ответа
Не существует практического способа сделать это с помощью клиента telnet, так как вам придется вводить весь XML-код самостоятельно, что невероятно непрактично. Однако есть несколько доступных клиентов XMPP командной строки, как обсуждалось в этом вопросе переполнения стека.
Список клиентов консоли Jabber
Если вы заинтересованы в изучении протокола XMPP, я предлагаю вам установить Pidgin и взглянуть на консоль XMPP, щелкнув правой кнопкой мыши значок уведомления Pidgin и выбрав XMPP Console
из меню. Будут показаны все сообщения XMPP, отправленные на ваш клиент и от него, включая каждое уведомление о наборе, обновление статуса и т. Д. На это очень интересно смотреть, и вы даже можете попробовать отправить свои коды состояния XMPP с консоли.
Из (очень) ограниченного тестирования это кажется возможным.
Бежать telnet chat.facebook.com 5222
для подключения, затем продолжите отправку действительного XML, соответствующего спецификации протокола Jabber.
$ telnet chat.facebook.com 5222
Trying 69.63.181.105...
Connected to chat.facebook.com.
Escape character is '^]'.
<?xml version="1.0">
<stream>
// here I was looking up auth
Connection closed by foreign host.
Имейте в виду, что сервер закрывает ваше соединение в течение минуты бездействия, поэтому поиск протокола по запросу нецелесообразен. Или что-нибудь, связанное с необработанным Jabber, поскольку безошибочно набирать XML не так-то просто, и как только вы отправляете неверно сформированный XML, соединение немедленно закрывается.
$ telnet chat.facebook.com 5222
Trying 69.63.181.105...
Connected to chat.facebook.com.
Escape character is '^]'.
<stream>
<?xml version="1.0"?><stream:stream id="5D13A2D5" from="chat.facebook.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" xml:lang="en"><stream:error><invalid-namespace xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error></stream:stream>Connection closed by foreign host
Если вы хотите страдать во время чата, лучше использовать клиент командной строки. В качестве альтернативы, создайте минимального клиента самостоятельно, если речь идет о протоколе, чтобы вам не приходилось вводить XML под давлением - и вы не страдаете от различий в Telnet.
Использование telnet, вероятно, не будет работать так, как вам бы того хотелось - вы, вероятно, имеете в виду "необработанное сокетное соединение". Если вы действительно хорошо знаете протокол Jabber, вы можете сделать это с помощью PuTTY:
- шпаклевка -raw chat.facebook.com 5222
Лучше всего просто получить клиент Jabber и подключиться к нему с именем хоста chat.facebook.com.