Ваш логин-код даже не близок к завершению, сначала
, первый запрос к m.facebook.com для получения оригинального куки-файла требует заголовка accept-language
(серьезно, он не будетпозвольте войти без языка принятия, странное дерьмо, вот что я использую: accept-language:en-US,en;q=0.8
),
секунда, вы пытаетесь проанализировать HTML с помощью регулярных выражений, прекратить делать это , вместо этого вы должны использовать правильный анализатор HTML, PHP имеет несколько анализаторов HTML (включая DOMDocument, XMLReader, XMLParser, SimpleXml, ...), в-третьих, вы пытаетесь жестко закодировать параметры формы входа, не делайте этого, извлекайте их динамически, вы должны извлекать все элементы <input>
, являющиеся потомками элемента login_form
, динамически, добавлять их в ваш запрос на вход в систему и просто заполнять «email» и «pass»вводится вручную.
далее, иногда вы случайно получаете запрос на установку мобильного приложения facebook вместо входа в систему (это происходит не каждый раз, но, казалось бы, случайно), когда вы получаете этот вопрос, вы НЕОБХОДИМО ответить «да» или «нет», Facebook не позволит вам продолжить вход в систему, прежде чем ответить.вопрос может быть обнаружен путем поиска элемента <a>
с href=
, который содержит строку /login/save-device/cancel/
, и вы можете ответить на not interested
, выполнив простой запрос GET к href, указанному этим a-элементом.наконец, успешность входа в систему можно проверить, выполнив поиск a-элемента с href, содержащим /logout.php
. Пример кода входа в систему можно найти в конструкторе FacebookRelay проекта msgme, здесь: https://github.com/divinity76/msgme/blob/master/src/php/relays/facebook.relay.php