<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: авторизация в фейсбуке facebook]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15875&amp;type=atom" />
	<updated>2021-11-01T08:55:48Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=15875</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=150358#p150358" />
			<content type="html"><![CDATA[<p>Странно, меня пока не блокирует.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-11-01T08:55:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=150358#p150358</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=150357#p150357" />
			<content type="html"><![CDATA[<p>Да, по вашему примеру. Но ничего, я новый зарегистрировал.</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2021-11-01T08:53:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=150357#p150357</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=150356#p150356" />
			<content type="html"><![CDATA[<p>Моим кодом?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-11-01T07:36:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=150356#p150356</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=150351#p150351" />
			<content type="html"><![CDATA[<p>Я залогинился и меня заблокировал фейсбук. <a href="https://i.imgur.com/5S5NAXK.jpg">https://i.imgur.com/5S5NAXK.jpg</a>. Хорошо, что аккаунт новый был, не жалко. Хотел восстановить аккаунт, не восстановили.</p>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2021-11-01T03:07:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=150351#p150351</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143911#p143911" />
			<content type="html"><![CDATA[<p>Я сейчас потестировал и информация оказалось ложной.<br />Там получается так.<br />В мобильной версии мы действительно получаем в группе 20 сообщений сразу, но так как она мобильная, то грузится за такое же время как обычная с 3 сообщениями.<br />Но проблема в мобильной в том, что нельзя сообщения рассортировать в хронологическом порядке, а только по последней активности (во всяком случае я не нашел такого параметра).<br />А мне надо было написать скрипт, который реагирует на новое сообщение, поэтому, полагаю, я обычную версию загружал в мобильную и соответственно получал увеличенное время ожидания.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-04T23:48:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143911#p143911</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143910#p143910" />
			<content type="html"><![CDATA[<p><strong>Malcev</strong>, понял. Спасибо за информацию. Не сравнивал в этом ключе. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Встречно хотел уточнить - но тогда же ведь получается есть смысл грузить как раз мобильную, чтобы получить больше информации за 1 раз ? Ведь если есть задача получить объявления, то всё равно придётся грузить множество ? И кстати, у вас на какой версии так себя ведёт сайт - на версии под Android или под WAP или одинаково ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2020-12-04T22:11:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143910#p143910</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143909#p143909" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>Первым делом, как и говорил DD, обратился именно к мобильный версии сайта, так как она меньше завязана на современные скрипты и грузит меньше HTML кода</p></blockquote></div><p>Это не всегда так.<br />Например при переходе на объявления в группе, мобильная версия загружается в 6 раз дольше простой (3000ms против 500ms), так как простая загружает только 3 последних объявления, а мобильная 20.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-04T21:34:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143909#p143909</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143903#p143903" />
			<content type="html"><![CDATA[<p>Приветствую, господа. Решил проверить работает ли старый подход к решению задачи. Первым делом, как и говорил DD, обратился именно к мобильный версии сайта, так как она меньше завязана на современные скрипты и грузит меньше HTML кода. Авторизация проходит без проблем. По концу сделал получение списка друзей, так как в моём аккаунте нет постов. Но думаю сам подход может пригодится тем, кто будет копать эту затею дальше. Какие плюсы вижу в таком решении:<br />1) Основной разбор данных страницы делается через HTMLDocument. Следовательно проще работать с деревом документа и с последующими страницами.<br />2) Благодаря тому же HTMLDocument получаем полный набор полей формы авторизации. Таким образом значения полей, призванные для защиты от автоматической, авторизации успешно обрабатываются.</p><p>Возможно тоже самое можно сделать через АПИ, но пока туда не забредал. Захотелось поэкспериментировать с текущими условиями.</p><p>P.S Код на JS, так как AHK мне так и не стал близок.</p><div class="codebox"><pre><code>
// Константы для WinHttpRequest
var WinHttpRequestOption_UserAgentString = 0,
	WinHttpRequestOption_URL = 1;

// Создание объекта для работы c веб ресурсами
var whr = WSH.CreateObject(&#039;WinHttp.WinHttpRequest.5.1&#039;);
// Установка User-Agent, чтобы сайт опознавал нас как мобильное устройство
//whr.Option(WinHttpRequestOption_UserAgentString) = &#039;Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.187 Mobile Safari/534.11+&#039;;
whr.Option(WinHttpRequestOption_UserAgentString) = &#039;Nokia7610/2.0 (5.0509.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0&#039;
// Загрузка страницы авторизации
WSH.Echo(&quot;Loading main page...&quot;);
whr.open(&#039;GET&#039;,&#039;https://m.facebook.com/login&#039;,false);
whr.send();
// Парсинг страницы (вторым параметром передаётся базовый URL страницы, чтобы все относительные ссылки внутри документа возвращали полный адрес)
var document = documentFromHTML(whr.responseText,whr.Option(WinHttpRequestOption_URL));
if(document.forms.length &lt; 1){
	WSH.Echo(&#039;Authorization form not found !&#039;);
	WSH.Quit();
} 
// Получение полей формы
var form = document.forms[0];
// Заполнение логина и пароля в форме
form.elements[&#039;email&#039;].value =&#039;user@mail.com&#039;;
form.elements[&#039;pass&#039;].value = &#039;password&#039;;
// Эмуляция отправки формы на сервер
WSH.Echo(&quot;Authorizing...&quot;);
whr.open(&#039;POST&#039;,form.action,false);
whr.setRequestHeader(&#039;Content-Type&#039;,&#039;application/x-www-form-urlencoded&#039;);
// Отправка данных формы для авторизации на сайте. Сначала поля формы преобразуются к JSON объекту, а потом уже в строку параметров
whr.send(toQueryString(formDataToJSON(form)));
// Косвенная проверка успешности авторизации. При успешном исходе в URL присутсвует подстрока login/save-device
if(!/login\/save-device/i.test(whr.Option(WinHttpRequestOption_URL))){
	WSH.Echo(&quot;Login failed.&quot;);
	WSH.Quit();
}
// Получение страницы с данными по друзьям
WSH.Echo(&quot;Loading friend list...&quot;);
whr.open(&#039;GET&#039;,&#039;https://m.facebook.com/buddylist.php?ref_component=mbasic_home_header&amp;ref_page=MChatBuddyListController&#039;,false);
whr.send();
// Парсим HTML содержимое
var document = documentFromHTML(whr.ResponseText);
// Выбираем все ссылки с классом &quot;bm&quot; внутри div элемента с классом &quot;bx by bz&quot;
var elements = document.querySelectorAll(&quot;div.bx.by.bz a.bm&quot;);
for(var i=0;i &lt; elements.length;i++){
	WSH.Echo(elements[i].innerText);
}

// Обработка полей формы и создание объекта
function formDataToJSON(form){
	var object = {};
	for(var i=0;i &lt; form.elements.length;i++){
		object[form.elements[i].name] = form.elements[i].value;
	}
	return object
}

// Функция преобразования HTML текста в объектную модель HTML документа
function documentFromHTML(text,baseURL){
	var document = new ActiveXObject(&#039;htmlfile&#039;);
	// Включение максимально доступной версии парсера IE
	document.write(&#039;&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=Edge&quot;&gt;&#039; + text);
	document.close();
	// Добавление базового URL
	if(baseURL){
		var base = document.createElement(&#039;base&#039;);
		base.href = baseURL;
		document.all.tags(&#039;head&#039;)[0].appendChild(base);
	}
	return document
}
// Функция преобразования JS объектов и массивов в строку параметров для запроса a=1&amp;b=2&amp;c=3....
//https://stackoverflow.com/questions/1714786/query-string-encoding-of-a-javascript-object
//https://stackoverflow.com/questions/1714786/query-string-encoding-of-a-javascript-object#comment19642330_1714899
function toQueryString(obj, prefix) {
    var str = [];
	for (var p in obj) {
		if (obj.hasOwnProperty(p)) {
			var k = prefix ? prefix + &quot;[&quot; + p + &quot;]&quot; : p, v = obj[p];
			str.push(typeof v == &quot;object&quot; ? toQueryString(v, k) : encodeURIComponent(k) + &quot;=&quot; + encodeURIComponent(v));
		}
	}
    return str.join(&quot;&amp;&quot;).replace(/%20/g,&#039;+&#039;);
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2020-12-04T19:18:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143903#p143903</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143896#p143896" />
			<content type="html"><![CDATA[<p>Ну тогда смотрите в броузере, что отправляете и что получаете.<br />Обычно, самое сложное это залогиниться.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-04T10:00:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143896#p143896</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143895#p143895" />
			<content type="html"><![CDATA[<p>Имелось в виду скачивание какого-то профиля со всеми постами. То есть, сразу по открытии профиля там лента со ссылками на посты профиля, которые хотелось бы получать. До недавнего времени я пользовался через скрипт мобильной версией сайта, в котором вместо подгрузок были переходы по истории, но теперь это убрали.</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2020-12-04T09:57:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143895#p143895</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143893#p143893" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DD пишет:</cite><blockquote><p>Уважаемый, почему получить контент в удобном виде, а не как это выдаёт фейсбук - нечестно?</p></blockquote></div><p>Получить доступ вашего приложения к группам, можно только с разрешения администратора группы.<br />Для вашей же задачи администратором являетесь вы, поэтому без труда можете дать себе нужный токен.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-04T09:18:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143893#p143893</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143890#p143890" />
			<content type="html"><![CDATA[<p>Уважаемый, почему получить контент в удобном виде, а не как это выдаёт фейсбук - нечестно?) К примеру, чтобы добраться до старых постов профиля, фейсбук предлагает честно попотеть). И как замечено, он не всё выдаёт — в зависимости от региона, профиля и тп. Имеется в виду просто работа ленты с подгрузкой постов.</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2020-12-04T08:47:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143890#p143890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143883#p143883" />
			<content type="html"><![CDATA[<p>Я писал этот скрипт, так как был заказ на парсинг сообществ фейсбука и перправка новых сообщений на телеграм канал.<br />А это противоречит правилам честного использования фейсбука.<br />Для вашей же цели, думаю, подойдет официальное АПИ.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-04T05:35:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143883#p143883</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143879#p143879" />
			<content type="html"><![CDATA[<p>Вот бы еще для подгружаемой в профилях ленты код организовать, а то тоже не банально.</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2020-12-03T23:29:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143879#p143879</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: авторизация в фейсбуке facebook]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=143812#p143812" />
			<content type="html"><![CDATA[<p>Тема для обсуждения &quot;авторизация в фейсбуке facebook&quot;.<br /><a href="http://forum.script-coding.com/viewtopic.php?id=17655">http://forum.script-coding.com/viewtopic.php?id=17655</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2020-12-02T02:59:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=143812#p143812</id>
		</entry>
</feed>
