Программно неактивные фотографии FB с Javascript
Я потратил прошлый час на взломы: я хочу написать Javscript, чтобы программно отвлечь себя от фотографий на Facebook. Как только он сработает, я запустил его в консоли Firebug и отвлекся от всех фотографий Facebook (там нет способа сделать это через графический интерфейс).
Я хотел посмотреть, есть ли у вас, ребята, какой-то совет, который поможет мне отправиться в путешествие.
У меня есть несколько методов, но пока не слишком далеко. Я пробовал подход AJAX, создав новый HTML-запрос и указав его на URL-адрес remove_tag, который выглядит примерно так:
/ajax/photo_tagging_ajax.php?pid= (PICTURE_ID) & ID = (PICTURE_OWNER_ID) & при условии = (КОЕ) & name= (ВАШ + имя) & действие = удалить
Неудивительно, что это не работает (пока). Я проверял HTTP-ответ в Firebug, и он совсем не похож на тот, когда я фактически не рисую картинку. Он даже не отправляет запрос POST.
Чтобы уточнить, я также попытался сделать getElementById на привязке "удалить тег", а затем сделать document.location switcharoo, но это не сработает. Я также не могу сделать .click() на нем.
Будет ли это возможно или мне снится? (это почти 4AM)
Ответы
Ответ 1
Так как я не уверен, что вы подняли мою обновленную версию в HN:
var loc = window.location.href.split('?')[1].split('#')[0].split('&');
var qs = {};
$jq.each(loc, function(ix, el) {
var m = el.split('='), k = m[0], v = m[1];
qs[k] = v;
});
var args = {
pid: qs.pid, // photo ID
id: qs.id, // photo owner ID
subject: Env.user, // user ID to remove
name: '', // not checked
action: 'remove',
__a: 1,
fb_dtsg: Env.fb_dtsg,
post_form_id: Env.post_form_id,
post_form_id_source: 'AsyncRequest'
};
$jq.post('/ajax/photo_tagging_ajax.php', args);
Ответ 2
Из DCoder через Новости хакеров:
Использование Firebug, FireQuery, jQuery не конфликтует как $jq, изнутри страницы с фотографиями (http://www.facebook.com/photo.php?pid=xxx&id=y):
var loc = window.location.href.match(/pid=(\d+)&id=(\d+)/);
var args = {
pid: loc[1], // photo ID
id: loc[2], // request sender id? photo owner id? not sure, haven't tested, but my user ID worked when trying to remove someone from a photo in my album
subject: loc[2], // user ID to remove
name: '', // not checked
action: 'remove',
__a: 1,
fb_dtsg: $jq('input[name="fb_dtsg"]').val(),
post_form_id: $jq('#post_form_id').val(),
post_form_id_source: 'AsyncRequest'
};
$jq.post('/ajax/photo_tagging_ajax.php', args);
Он не обновляет пользовательский интерфейс. Требуются fb_dtsg и post_form_id и, по-видимому, являются маркерами анти-CSRF. Не экспериментировали достаточно, чтобы знать, можно ли их повторно использовать несколько раз.
Ответ 3
Chickenfoot http://groups.csail.mit.edu/uid/chickenfoot/ - это плагин для Firefox, который может быть альтернативой использованию консоли Firebug: вы можете писать макросы/скрипты для автоматизации повторяющиеся задачи в вашем браузере. Действия, которые вы кодируете, не отличаются от того, что вы на самом деле нажимаете, заполняют формы или что-то еще. Насколько я помню, есть интерфейс DOM для перемещения html и т.д.