Programmatically Untag FB Photos con Javascript
ajax facebook (3)
Me he pasado la última hora pirateando esto: quiero escribir una rutina de Javscript para desvincularme programáticamente de mis fotos en Facebook. Una vez que funcione, lo ejecutaré en la consola Firebug y me quitaré la etiqueta de todas las fotos de Facebook (no hay forma de hacerlo a través de la GUI).
Quería ver si ustedes tenían algún consejo para llevarme en mi viaje.
Tengo algunos métodos en mente pero aún no he avanzado demasiado. Probé un enfoque AJAX al crear una nueva solicitud HTML y apuntarla a la URL remove_tag, que se ve así:
/ajax/photo_tagging_ajax.php?pid= (PICTURE_ID) & id = (PICTURE_OWNER_ID) & subject = (ALGO) & name = (YOUR + NAME) & action = remove
No es sorprendente que esto no funcione (todavía). Estuve revisando la respuesta HTTP en Firebug y es bastante diferente de la que hice cuando eliminé la etiqueta. Ni siquiera está enviando una solicitud POST.
Solo para aclarar, también he intentado hacer un getElementById en el anclaje "eliminar etiqueta", y luego hacer un switcheoo de ubicación del documento, pero eso no funciona. Tampoco puedo hacer un .click () en él.
¿Esto será posible o estoy soñando? (son casi las 4AM)
Chickenfoot http://groups.csail.mit.edu/uid/chickenfoot/ es un complemento de Firefox que podría ser una alternativa al uso de la consola Firebug: puedes escribir macros / scripts para automatizar tareas repetitivas en tu navegador. Las acciones que codifica no son diferentes a las que realmente hace clic, llena formularios o lo que sea. Por lo que puedo recordar, hay una interfaz DOM para recorrer html, etc.
Desde DCoder , a través de Hacker News :
Usando Firebug, FireQuery, jQuery no hay conflicto como $ jq, desde el interior de una página de fotos ( 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);
No actualiza la interfaz de usuario. El fb_dtsg y el post_form_id son obligatorios y parecen ser tokens anti-CSRF. No han experimentado lo suficiente como para saber si pueden volver a usarse varias veces.
Ya que no estoy seguro si recogió mi versión actualizada en 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);