我花了一个小时的时间来讨论这个问题:我想编写一个Javscript例程,以编程方式从Facebook上的照片中删除自己.一旦它工作,我将在Firebug控制台中运行它并从所有Facebook照片中取消自己(没有办法通过GUI执行此操作).
我想看看你们是否有一些建议让我踏上旅程.
我有几个方法,但还没有走得太远.我通过创建一个新的HTML请求并将其指向remove_tag URL来尝试AJAX方法,该URL看起来像这样:
/ajax/photo_tagging_ajax.php?pid= (PICTURE_ID)&ID = (PICTURE_OWNER_ID) &主题= (东西)&名称= (YOUR + NAME)和行动=除去
毫不奇怪,这还不行.我一直在检查Firebug中的HTTP响应,它与我实际解开图片的情况完全不同.它甚至没有发送POST请求.
为了澄清,我还尝试在"删除标记"锚点上执行getElementById,然后执行document.location switcharoo,但这不起作用.我也不能对它做一个.click().
这甚至可能还是我在做梦?(差不多凌晨4点)
来自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);
它不会更新UI.fb_dtsg和post_form_id是必需的,似乎是反CSRF令牌.没有足够的实验来知道它们是否可以多次重复使用.