Find Facebook user (url to profile page) by known email address

后端 未结 11 1717
陌清茗
陌清茗 2020-12-01 03:40

I have an email address and want to find out if there is a Facebook user linked to this address. If there is, then I want to retrieve the url to this users profile page and

相关标签:
11条回答
  • 2020-12-01 04:08

    Simply use the graph API with this url format: https://graph.facebook.com/search?q=zuck@fb.com&type=user&access_token=... You can easily create an application here and grab an access token for it here. I believe you get an estimated 600 requests per 600 seconds, although this isn't documented.

    If you are doing this in bulk, you could use batch requests in batches of 20 email addresses. This may help with rate limits (I am not sure if you get 600 batch requests per 600 seconds or 600 individual requests).

    0 讨论(0)
  • 2020-12-01 04:10

    This is appeared as pretty easy task, as Facebook don't hiding user emails or phones from me. So here is html parsing function on PHP with cURL

    /*
        Search Facebook without authorization
        Query
            user name, e-mail, phone, page etc
        Types of search
            all, people, pages, places, groups, apps, events
        Result
            Array with facebook page names ( facebook.com/{page} )
        By      57ar7up
        Date    2016
    */
    function facebook_search($query, $type = 'all'){
        $url = 'http://www.facebook.com/search/'.$type.'/?q='.$query;
        $user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36';
    
        $c = curl_init();
        curl_setopt_array($c, array(
            CURLOPT_URL             => $url,
            CURLOPT_USERAGENT       => $user_agent,
            CURLOPT_RETURNTRANSFER  => TRUE,
            CURLOPT_FOLLOWLOCATION  => TRUE,
            CURLOPT_SSL_VERIFYPEER  => FALSE
        ));
        $data = curl_exec($c);
    
        preg_match_all('/href=\"https:\/\/www.facebook.com\/(([^\"\/]+)|people\/([^\"]+\/\d+))[\/]?\"/', $data, $matches);
        if($matches[3][0] != FALSE){                // facebook.com/people/name/id
            $pages = array_map(function($el){
                return explode('/', $el)[0];
            }, $matches[3]);
        } else                                      // facebook.com/name
            $pages = $matches[2];
        return array_filter(array_unique($pages));  // Removing duplicates and empty values
    }
    
    0 讨论(0)
  • 2020-12-01 04:10

    WARNING: Old and outdated answer. Do not use


    I think that you will have to go for your last solution, scraping the result page of the search, because you can only search by email with the API into those users that have authorized your APP (and you will need one because the token that FB provides in the examples has an expiry date and you need extended permissions to access the user's email).

    The only approach that I have not tried, but I think it's limited in the same way, is FQL. Something like

    SELECT * FROM user WHERE email 'your@email.com'
    
    0 讨论(0)
  • 2020-12-01 04:14

    Facebook has a strict policy on sharing only the content which a profile makes public to the end user.. Still what you want is possible if the user has actually left the email id open to public domain.. A wild try u can do is send batch requests for the maximum possible batch size to ids..."http://graph.facebook.com/ .. and parse the result to check if email exists and if it does then it matches to the one you want.. you don't need any access_token for the public information ..

    in case you want email id of a FB user only possible way is that they authorize ur app and then you can use the access_token thus generated for the required task.

    0 讨论(0)
  • 2020-12-01 04:23

    In response to the bug filed here: http://developers.facebook.com/bugs/167188686695750 a Facebook engineer replied:

    This is by design, searching for users is intended to be a user to user function only, for use in finding new friends or searching by email to find existing contacts on Facebook. The "scraping" mentioned on StackOverflow is specifically against our Terms of Service https://www.facebook.com/terms.php and in fact the only legitimate way to search for users on Facebook is when you are a user.

    0 讨论(0)
  • 2020-12-01 04:23

    Maybe this is a little bit late but I found a web site which gives social media account details by know email addreess. It is https://www.fullcontact.com

    You can use Person Api there and get the info.

    This is a type of get : https://api.fullcontact.com/v2/person.xml?email=someone@****&apiKey=********

    Also there is xml or json choice.

    0 讨论(0)
提交回复
热议问题