2

Я смог использовать чат 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 ответа3

6

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

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

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

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

2

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


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

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .