Ways to grow your circle of friends on Facebook on a daily basis

Exploring different methods to retrieve a list of my Facebook friends on a daily basis, I embarked on a journey to find the most efficient way to achieve this goal.

Initially, I opted for creating a selenium webdriver script. This involved opening a web browser, navigating to /me/friends, automatically scrolling down to the end of the list, and then extracting the names. While this method was effective, it did take a considerable amount of time (around 4-5 minutes).

Upon further investigation into the graph API, it became apparent that obtaining a complete friend list was not feasible.

An alternative approach would be to request Facebook to download all of your data. However, this process involves waiting for an email from Facebook with a link to download the data, adding another layer of delay.

Lastly, I came across a Chrome extension called who deleted me which proved to be faster than my previous approaches. Despite its efficiency, I had reservations about using third-party extensions to access my data and preferred to find a more independent solution. It was also intriguing to note that this extension failed to detect a deceased friend of mine, prompting me to question its methodology and whether there exists an endpoint to access public friends.

Are there other programming techniques for fetching friends' lists? One potential method could involve using a headless browser to make requests to /me/friends and extract responses similar to how a traditional browser scrolls through the page. However, identifying the correct ajax calls in this scenario might prove challenging.

Update: Regarding my scraping method, you can view the code here: https://gist.github.com/johndel/cd01a854e8bf36d9d30b44758607cf3d#file-check_friends-rb

While not the most polished code, it serves as a workaround for accomplishing the task. Simply replace the sendkeys with your email/password to initiate the process. My approach successfully retrieves all of my friends, unlike the aforementioned Chrome extension which missed one individual. This leads me to believe that it may be utilizing a different endpoint or methodology.

Answer №1

/me/friends is a specific endpoint within the Graph API that retrieves a list of friends who have authorized your application. It is important to note that it is not possible to access the information of friends who have not granted permission for your app. Facebook prohibits any actions that involve scraping data from their platform.

To learn more about scraping terms, visit:

For additional insights, check out this resource: Facebook Graph Api v2.0+ - /me/friends returns empty, or only friends who also use my app

Answer №2

After some exploration, I stumbled upon a different URL that allows me to retrieve users. It appears there is a multitude of users along with multiple solutions available. For a more efficient and streamlined approach, check out this helpful gist:

https://gist.github.com/sarahsmith/6f8ca26738b9d750128e4587c45e21af. Additionally, it could potentially be enhanced further by implementing threads (such as typhoeus and hydra).

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Determine the moment at which the input is altered by adjusting the slider

I'm encountering an issue with making this work. My goal is to calculate input bmi_val whenever one of the other 2 inputs is modified. These inputs can be changed either directly by the user (entering a value into one of them) or through a jQuery sli ...

Troubleshooting: Replacing onClick() in HTML with JavaScript when addEventListener is not functioning as expected

I've tested several solutions already, but unfortunately, none of them seem to work for me. My Flask application utilizes a combination of HTML and JavaScript to present a few web pages. At the moment, I still have some inline code (which is also pr ...

Adjusting the background hue of the 'td' element within an ajax request

When I press a button, an ajax call is triggered below. In this call, I append 'td' elements with values to a table. Specifically, on the line ''</td><td>' + result[i].preRiskCategory +', I am attempting to change ...

The fetch function in my Node.js code is failing to properly display JSON data from a file on the console

I am currently exploring node.js and working on building a web server to fetch a list of team members from a JSON file in the 'json' folder. However, I am encountering an issue with my fetch function as it is not displaying the data on the consol ...

Tips for pausing keyframes animation on its final animation frame

Is there a way to halt my animation at the 100% keyframe? What I'm attempting to accomplish is animating these boxes so that when you click on the top one, it moves to the bottom and vice versa. Any suggestions or ideas on how to achieve this? <h ...

Dealing with Koa-router and handling POST requests

I am facing an issue handling POST requests in my koa-router. Despite using koa-bodyparser, I am unable to receive any data sent through my form. My template engine is Jade. router.js: var jade = require('jade'); var router = require('koa- ...

Troubleshooting: Django's Second Selenium Test Showing 500 Server Error

I've encountered an issue while adding selenium tests to my Django project. The second test consistently fails with a Server Error (500). Both tests begin in the same manner, leading me to believe that the problem lies within the setUp and tearDown me ...

Putting retrieved data from firebase into an array using Angular and Firebase format

Hey everyone, I'm currently facing an issue with formatting my Firebase data into an array. Below is the service where I am retrieving data from Firebase: File name: subcategory.service.ts export class SubcategoryService { subcategoryRef: Angula ...

What is causing the onclick event to not function properly when called from an external .js file?

I've created a .js file that contains code for a photo album application. The file includes functions for changing images when buttons are clicked. However, when I interact with the buttons, the images do not change as expected. The code in the .js f ...

Achieving success despite facing rejection

I am currently utilizing the bluebird settle method in order to verify results for promises without concerning myself with any rejections. Interestingly, even though I have rejected the promise within the secondMethod, the isFulfilled() still returns tru ...

Implementing Image Data in AngularJS: A Guide to Binding Images to IMG Tags

Allow me to explain the problem further. I am retrieving a user's profile picture by calling an API that returns image data, as shown in the screenshot below https://i.stack.imgur.com/t8Jtz.jpg https://i.stack.imgur.com/pxTUS.png The reason I canno ...

Sending data using Ajax to the server-side code in ASP.NET

Struggling to successfully pass a series of values through Ajax to a code-behind method in order to insert the data into a database table. However, encountering issues where string variables are being received as empty strings and int variables as 0. The ...

What's the best way to arrange the layout to ensure that every row contains exactly three items that are evenly spaced apart?

Struggling to figure out how to display three items in each row with even spacing using react js and bootstrap. I've been grappling with this for hours today, trying to implement grid layouts on the page. I managed to render 3-4 items on each row, bu ...

What factors cause variations in script behavior related to the DOM across different browsers?

When looking at the code below, it's evident that its behavior can vary depending on the browser being used. It appears that there are instances where the DOM is not fully loaded despite using $(document).ready or similar checks. In Firefox, the "els ...

Using React: Passing the state value of Child1 to the Parent component, then passing it back down to Child2 from

Within my application, I've implemented two child components: 'FoodScreen' and 'OperationScreen', along with a parent component called 'Desk'. I am passing a JSON array variable to the FoodScreen component in order to sel ...

Is there a way to deactivate other dropdown options?

To simplify the selection process, I would like to disable the options for "Province", "City", and "Barangay". When the user clicks on the "Region" field, the corresponding "Province" options should be enabled. Then, when a specific province is selected, t ...

Converting a Selenium By object into a CSS selector: A step-by-step guide

When working with Selenium WebDriver, it's a common practice to find elements using the By class. Currently, I'm using a ByChained selector and I'm curious if there's a way to convert a By object to a CSS selector. For instance: By sel ...

Issues with parsing application/json data in NodeJS using Express

As a newcomer to setting up a NodeJS express JSON REST API, I am encountering challenges in retrieving the JSON data from both GET and POST requests. Here is the code snippet that I am currently working with: var bodyParser = require("body-parser"); con ...

When transferring a PHP array into a JS array, each letter of the values within the array becomes separated into its own element

Here is the provided code snippet: <?php $array = array('RANAJI', 'YAARA MAULA', 'AARAMBH', 'AISI SAZAA', 'SHEHER', 'BEEDO', 'DUNIYA', 'RAAT KE MUSAFIR'); foreach ($array a ...

Is there a discrepancy in the JSON algorithm?

While using google chrome, I encountered the following scenario: I had an object in javascript that looked like this: var b = { text: 'hello world, you "cool"' }; I then used JSON.stringify to convert it to a string and sent it to the dat ...