Еще год назад, когда написали про Кембридж Аналитика первый раз, я подумал, как можно сделать что то похожее самому.
Дырка позволяющая
собрать информацию о друзьях была прикрыта еще в 2015, и вообще ФБ стал уже очень строгим при разрешении приложений, собирающих данные (при чем у старых приложений "на какой цветочек я похож" разрешение не отзывает, сука).
Но тогда у меня возникла идея попробывать встраивание невидимой картинки в 1х1 пиксель в посты, чтобы посмотреть что вытащить из кукис HTTP запроса, когда он придет на мой сервер. Более того, возникла идея делать такой же втсроенный пиксель и в картинках.
Идея вот в чем - через кукис, которые приходят в запросе пикселя, получить авторизацию как пользователь ФБ и попытаться скачать его профайл, подменив в запросе свой хост на имя хоста, на котором сидит юзер.
Вот мой
репозиторий на GitHub,там я это делаю на котлине с помощью Spring Social facebook.
Как оказалось, это возможно лишь отчасти.
Во первых токен да, получается получить, но он валиден не более 1 секунды (видимо время, выделенное браузеру на скачивание контента со страницы фейсбука). Если у пользователя медленная сеть (я экспериментировал над собой ечрез медленный вай фай) это время растет.
Во вторых так можно скачать только ленту пользователя, которую он видит сейчас - т.е. в Spring Social API:
fbApiProvider.getAPI(userId).feedOperations().getFeed(id)
заменив перед этим токен request.setheader("Oauth-host", userHeaders.host)
Вобщем получается, что в среднем в 20% случаев я могу получить 5-10 постов из фида юзера, т.е. то, что он видит перед собой и в кэше его браузера. Что он лайкнул, что нет я таким образом не знаю. Но если мой пост с волщебным пикселем попадется в ленте опять, я опять получаю возможность посмотреть на ленту.Картинки с пикселем, я расшаривал только на русскоязычных друзей, а не как Паблик, от греха подальше
Что с этим можно делать?
Я попытался во первых собрать какие то идентификаторы того, что в ленте - имена людей и имена сайтов на которые линки.
Потом попробывал про некоторых из них дать какой то таг. Ну скажет haaretz - "левые","мерец". Биби - "правые", "ликуд"
если я сам в ленте то "космос" :) Ну и т.д.
Потом попытался считать сколько каких тагов у кого.
Про каждый пост я сохранял его id,чтобы не считать его более двух раз.
Можно предположить, что если у кого то в ленте хаареца намного больше чем "исраэль айом", то даже не зная, что из этого он лайкает, можно предположить, что он скорее левый.
Т.е. так с определенной долей вероятности можно узнать что кого интересует.
Но от этого до информации что кому писать в письме и какого цвета делать фон, чтобы изменить его избирательные пристрастия далеко конечно :(