Как войти в чат на Facebook

9731
tony_sid

Я смог использовать чат 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. Я пытался, но не смог. Является ли это возможным? Как?

2

3 ответа на вопрос

6
nhinkle

Нет практического способа сделать это с помощью клиента telnet, так как вам придется вводить весь XML самостоятельно, что невероятно непрактично. Однако есть несколько доступных клиентов XMPP командной строки, как обсуждалось в этом вопросе переполнения стека .

Список клиентов консоли Jabber

Если вы заинтересованы в изучении протокола XMPP, я предлагаю вам установить Pidgin и взглянуть на консоль XMPP, щелкнув правой кнопкой мыши значок уведомления Pidgin и выбрав XMPP Consoleв меню. Будут показаны все сообщения XMPP, отправленные на ваш клиент и от него, включая каждое уведомление о наборе, обновление статуса и т. Д. На это очень интересно смотреть, и вы даже можете попробовать свои силы при отправке пользовательских кодов состояния XMPP с консоли.

консольный пиджин xmpp

Может кто-нибудь, пожалуйста, отредактировать материал "123456"? Мне пришлось добавить его, чтобы обойти странную ошибку дизайна на этом веб-сайте, которая требовала, чтобы я изменил еще 6 символов, прежде чем принять исправление, внесенное в формат списка решений Jabber. Благодарю. Randolf Richardson 13 лет назад 0
@Randolf: «недостаток дизайна», на который вы ссылаетесь [является преднамеренным ограничением для предотвращения односимвольных изменений.] (Http://blog.stackoverflow.com/2011/02/suggested-edits-and-edit-review/ ) grawity 13 лет назад 1
1
Daniel Beck

Из (очень) ограниченного тестирования это кажется возможным.


Запустите 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 .

Как я могу узнать, какой правильный XML для отправки? tony_sid 13 лет назад 0
@OSXJedi Читая и понимая спецификацию протокола Jabber, с которой я связан. Jabber является XML и даже менее предназначен для непосредственного использования человеком, чем FTP или IRC. Вы также можете попробовать использовать другой клиент Jabber и регистрировать свой сетевой трафик. Это должно дать вам представление о том, что делать на основе реального примера. Daniel Beck 13 лет назад 2
На самом деле я пытаюсь создать клиент для чата в Facebook. Вот почему я начал возиться с telnet, чтобы понять, как общаться с сервером чата. tony_sid 13 лет назад 0
@OSXJedi Тогда, вероятно, лучше всего регистрировать сетевой трафик при использовании другого клиента Jabber, а также читать спецификации. Вероятно, у вас нет времени и точности ввода, чтобы сделать это достаточно хорошо с помощью telnet. Вы всегда можете добавить функцию «сырого XML» к своему клиентскому программному обеспечению для целей отладки, которая позволит вам (пользователю) непосредственно вводить XML и создавать дополнительные пользовательские функции, например, для автоматического выполнения аутентификации. Но телнет - это не тот путь. Daniel Beck 13 лет назад 2
Как бы я регистрировал сетевой трафик? Подойдет ли Wireshark для этого? tony_sid 13 лет назад 0
@ OSXJedi Да. Вы также можете попробовать функцию поиска на этом сайте, потому что это было задано ранее. Daniel Beck 13 лет назад 0
@OSXJedi, @danielbeck вы можете увидеть статус XMPP и фрагменты XML, используя Pidgin, если вы хотите поиграть с XMPP. Нет необходимости писать какое-либо специальное программное обеспечение или использовать анализатор пакетов, чтобы просто осмотреться. Смотрите мой ответ выше. nhinkle 13 лет назад 0
1
Randolf Richardson

Использование telnet, вероятно, не будет работать так, как вам бы хотелось - вы, вероятно, имеете в виду «необработанное сокетное соединение». Если вы действительно хорошо знаете протокол Jabber, вы можете сделать это с помощью PuTTY:

  • шпаклевка -raw chat.facebook.com 5222

Лучше всего просто получить Jabber-клиент и подключиться к нему с помощью имени хоста chat.facebook.com.