Get Facebook fan page ID

前端 未结 9 1683
名媛妹妹
名媛妹妹 2021-02-04 08:32

I\'ve got the Facebook user ID of the user who created a given page. Now I need to get the page ID to display like box in my website.

Different users have their own Face

相关标签:
9条回答
  • 2021-02-04 09:12

    These answers don't seem to work anymore since the graph now requires an access token for most if not all requests.

    Here's a working solution that only requires as input the facebook page URL.

    What this does is receives the facebook page as HTML and looks through(via regex) for a JSON entity_id that has a numeric value. This value is the page's ID. This solution is surely not guaranteed to work forever since page content may change

    /**
     * @param string $facebookUrl
     * @return null|string
     */
    function get_facebook_id($facebookUrl)
    {
        $facebookId = null;
        $fbResponse = @file_get_contents($facebookUrl);
        if($fbResponse)
        {
            $matches = array();
            if (preg_match('/"entity_id":"([0-9])+"/', $fbResponse, $matches))
            {
                $jsonObj = json_decode("{" . $matches[0] . "}");
                if($jsonObj)
                {
                    $facebookId = $jsonObj['entity_id'];
                }
            }
        }
        return $facebookId;
    }
    
    0 讨论(0)
  • 2021-02-04 09:13

    this works using the new php sdk

    $page_id = null;
    $facebook = new Facebook();
    try {
        $signed_request = $facebook->getSignedRequest();
        $page_id = $signed_request['profile_id'];
    } catch (FacebookApiException $e) {
        error_log($e);
    }
    

    please note that i'm upset that this works, because what i'm actually looking for is the user id of the page creator since I need to display content created by that user on the tab. this used to be possible, but i don't think it is anymore. kasun, how are you getting the id of the page creator?

    0 讨论(0)
  • 2021-02-04 09:15

    goto http://www.facebook.com/insights/ after you logged in to your facebook

    press the green button on top right ( "insight for your domain") select the drop down value for your page voila, you see the page_id

    (I saw this on facebook forum)

    0 讨论(0)
  • 2021-02-04 09:17
    $pages = $facebook->api(array(
    'method' => 'fql.query',
    'query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.''
    ));
    

    $uid being the profile id# of the FB user! Fql query using PHP SDK

    0 讨论(0)
  • 2021-02-04 09:18

    The page id is included in the signed request. Here an updated version of byron's post for facebook's page update.

    $facebook = new Facebook();
    
    $signed_request = $facebook->getSignedRequest();
    $page_id = $signed_request['page']['id'];
    
    echo 'page id is ' . $page_id . ' AAAAAAAAAAWWWWWWW YYYYYYEEEEEEEEAAAAAAAAAAAA!';
    
    0 讨论(0)
  • 2021-02-04 09:18

    Here are list of functions which you can add in facebook sdk. Works for both graph api and rest api.

    /*
        Custom functions to get fan page related information
    */
    function getSignedData()
    {
        if(isset($this->signedData) && !empty($this->signedData))
            return $this->signedData;
    
        if(!isset($_REQUEST["signed_request"]))
            return false;
    
        $signed_request = $_REQUEST["signed_request"];
    
        if(empty($signed_request))
            return false;
    
        list($encoded_sig, $payload) = explode('.', $signed_request, 2);
        $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
    
        if(empty($data))
            return false;
    
        $this->signedData = $data;
    
    
    
        return $data;
    }
    
    /*
        Return fan page id, Only return fanpage id for 1st (landing) page of application.
    */
    function getFanPageId()
    {
        if(!$data = $this->getSignedData())
        {
            return false;
        }
        if(isset($data["page"]["id"]))
            return $data["page"]["id"];
    
        return false;
    }
    
    /*
        Only returns userid, if user has authenticated application
    */
    function getFanPageUserId()
    {
        if(!$data = $this->getSignedData())
        {
            return false;
        }
    
        if(isset($data["user_id"]))
        {
            return $data["user_id"];
        }
    
        return false;
    }
    
    /*
    Check if visiting user is fan page admin
    */
    function checkFanPageAdmin()
    {
        if(!$data = $this->getSignedData())
            return false;
    
        if(isset($data["page"]["admin"]) && $data["page"]["admin"] == 1)
            return true;
    
        return false;
    }
    
    0 讨论(0)
提交回复
热议问题