Get User Id from Facebook in PHP

前端 未结 2 490
耶瑟儿~
耶瑟儿~ 2020-12-29 17:19

I am trying to make a Facebook app and need user id from Facebook when the user opens the applicaiton. I have setup my application and its show mock form on the Facebook can

相关标签:
2条回答
  • 2020-12-29 17:43

    Here is a sort of hack code written by me which allows to fetch any facebook user id even if he is not logged in or authorized by app https://github.com/invisiblevision/get-facebook-id/

    <?php
    $profile_url = 'https://facebook.com/profileUrl';
     function get_web_page( $url )
        {
            $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
            $options = array(
                CURLOPT_CUSTOMREQUEST  =>"GET",        //set request type post or get
                CURLOPT_POST           =>false,        //set to GET
                CURLOPT_USERAGENT      => $user_agent, //set user agent
                CURLOPT_COOKIEFILE     =>"cookie.txt", //set cookie file
                CURLOPT_COOKIEJAR      =>"cookie.txt", //set cookie jar
                CURLOPT_RETURNTRANSFER => true,     // return web page
                CURLOPT_HEADER         => false,    // don't return headers
                CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                CURLOPT_ENCODING       => "",       // handle all encodings
                CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
                CURLOPT_TIMEOUT        => 120,      // timeout on response
                CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
            );
            $ch      = curl_init( $url );
            curl_setopt_array( $ch, $options );
            $content = curl_exec( $ch );
            $err     = curl_errno( $ch );
            $errmsg  = curl_error( $ch );
            $header  = curl_getinfo( $ch );
            curl_close( $ch );
            $header['errno']   = $err;
            $header['errmsg']  = $errmsg;
            $header['content'] = $content;
            return $header;
        }
    
    /*Getting user id */
    $url = 'http://findmyfbid.com';
    $data = array('url' => $profile_url );
    // use key 'http' even if you send the request to https://...
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    function getData($data)
    {
        $dom = new DOMDocument;
        $dom -> loadHTML( $data );
        $divs = $dom -> getElementsByTagName('code');
        foreach ( $divs as $div )
        {
                return $div -> nodeValue;
    
        }
    }
    $uid = getData($result);  // User ID
    
    0 讨论(0)
  • 2020-12-29 17:55

    Download the PHP SDK

    A very simple code example to get the user id - if the user is logged in and has authorised the application then $facebook->getUser() will give you the users id:

    require 'facebook.php';
    
    $facebook = new Facebook(array(
      'appId'  => 'YOUR_APP_ID',
      'secret' => 'YOUR_APP_SECRET',
    ));
    
    // Get User ID
    $user = $facebook->getUser();
    
    if ($user) {
      try {
        // Get the user profile data you have permission to view
        $user_profile = $facebook->api('/me');
        echo "<pre>";
        print_r($user_profile);
        echo "</pre>";
      } catch (FacebookApiException $e) {
        $user = null;
      }
    } else {
      die('<script>top.location.href="'.$facebook->getLoginUrl().'";</script>');
    }
    

    Take a look a the examples within the SDK and on the Facebook Developers Site.

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