Подтвердить что ты не робот

Программно неактивные фотографии 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)

4b9b3361

Ответ 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 и т.д.