如何从facebook url使用php获取组或页面的ID?

时间:2015-03-17 16:24:10

标签: php facebook-graph-api sdk

我希望为单个小任务找到解决方案。我想知道如何使用PHP获取facebook粉丝页面,组和用户个人资料ID的ID。

我尝试了很多东西,但不幸的是我无法得到解决方案。

例如,如何从以下链接获取ID

FanPage = https://facebook.com/pepsi 组= https://www.facebook.com/groups/TeespringNews/ 配置文件相同

<?php
 $id= $_GET['group-id'];
?>

由于

2 个答案:

答案 0 :(得分:0)

您需要使用Graph API从Facebook获取数据,不允许抓取。

例如:

$pageData = file_get_contents('https://graph.facebook.com/pepsi');

虽然,我建议使用CURL而不是file_get_contents。每当您访问Graph API时,您应始终创建一个应用程序并使用访问令牌。更多信息:https://developers.facebook.com/docs

答案 1 :(得分:0)

这是图api 2.8的测试ans 首先通过图形api登录获取应用访问令牌

初始化Facebook PHP SDK v5。

    require( __DIR__.'/path-to-sdk/autoload.php' );

`$fb = new Facebook\Facebook([
  'app_id'                => 'xxxxxxxxxxx',
  'app_secret'            => 'xxxxxxxxxxxxxxxxxx',
  'default_graph_version' => 'v2.8',
]);`

    $helper = $fb->getRedirectLoginHelper();
    try {
      $accessToken = $helper->getAccessToken();
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
       //There was an error communicating with Graph
      echo $e->getMessage();
      exit;
    }

    if (isset($accessToken)) {
      // User authenticated your app!
      $_SESSION['facebook_access_token'] = (string) $accessToken;
      echo 'Successfull!';
      exit;
    } elseif ($helper->getError()) {
      // The user denied the request
      var_dump($helper->getError());
      exit;
    }


$url = 'https://www.facebook.com/testpage/';

if ($url != ''){

        $arg = str_replace(
                array('http://','https://','www.','facebook.com/','/'),
                '',
                $url
        );
}

    $url="https://graph.facebook.com/{$arg}?access_token=".$_SESSION['facebook_access_token'];

      $ch = curl_init();
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch,CURLOPT_URL,$url);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
      $content = curl_exec($ch);
      $content = json_decode($content);
      var_dump($content);