Programmatically Untag FB Photos with Javascript Programmatically Untag FB Photos with Javascript ajax ajax

Programmatically Untag FB Photos with Javascript


From DCoder, via Hacker News:

Using Firebug, FireQuery, jQuery no conflict as $jq, from inside a photo page (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);

It doesn't update the UI. The fb_dtsg and post_form_id are required and seem to be anti-CSRF tokens. Haven't experimented enough to know if they can be reused multiple times.


Since I'm not sure if you picked up my updated version at 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);


Chickenfoot http://groups.csail.mit.edu/uid/chickenfoot/ is a Firefox plugin that might be an alternative to using the Firebug console: you can write macros/scripts to automate repetitive tasks in your browser. The actions you code for are no different to you actually clicking, populating forms or whatever yourself. As far as I can remember there is a DOM interface for traversing html etc.