3 ms·
I guess the key would be to ensure it is sufficiently slow to avoid triggering the anti-bot mechanism. Browsing the code I found this: http://code.google.com/p
by A1kmm 16y ago
I guess the key would be to ensure it is sufficiently slow to avoid triggering the anti-bot mechanism.
Browsing the code I found this:
http://code.google.com/p/fb-exporter/source/browse/trunk/fb-exporter.js#115 http://code.google.com/p/fb-exporter/source/browse/trunk/fb-...
... idx * 11000 + Math.random() * 1000
So in other words, it downloads the ith friend at time 11*i +/- 1s; an average of one download every 11.5s might just be sufficiently slow to avoid getting banned from Facebook. Obviously, Facebook could look for patterns in their logs that look like the tool (too high a ratio of friend data downloads to other pages, for example, or an unnaturally high goodness of fit to 11s plus uniform variation), but it would probably be quite expensive for them to make such searches too complex, and if an arms race between the autoblockers and the downloaders ensued, the downloaders would have the upper hand because Facebook has the disadvantages of needing to avoid false positives and to deal with the large amount of data they would need to process to do any complex statistical analysis across all access requests.
A few sources cite the median number of Facebook friends at 150 - so even at the relatively slow rate of one friend data download a minute (perhaps with some intervening decoy requests), half of all Facebook users could download all friend data in 2.5 hours. A non-bot user could easily hit Facebook at that rate, and Facebook would get very bad PR if they started banning a significant proportion of their user base due to false positives.