2016-01-07 55 views
1

我花了2天的时间搜索Facebook API的tutorial/example/doc的任何可用资源,并使用Graph API来获取Group Feed和Page Feed。我的问题可以重复/类似于这里的帖子。带图形API的Facebook PHP SDK

我已经通过Facebook PHP SDK Doc。我可能会被忽视或在错误的地方搜索。基本上,我想了解的是:

  1. 如何使用PHP SDK检索图形API组/换页
  2. 如何检索组/页

后的详细信息(包括照片)我使用Facebook的PHP-SDK-v4-5.0.0

+1

[页馈送(https://developers.facebook.com/docs/graph-api/reference/v2.5/page/feed)和[组饲料](https://developers.facebook.com/docs/graph-api/reference/v2.5/group/feed)。您需要更改'READING'选项卡以查看PHP示例:P。但它是5.0,请阅读(Facebook的PHP SDK更新日志)[https://www.sammyk.me/upgrading-the-facebook-php-sdk-from-v4-to-v5]看到两个版本的不同。 – Vuong

回答

0

我终于达到了我自己的问题的答案不知何故。谢谢大家的关注和回答。但是请允许我张贴我自己的答案,因为我终于可以弄明白了,希望它可以帮助那些像我这样的Graph API新手。

我弄明白由Facebook的下载API文档阅读降价促销文件夹,如下:

C:\ Facebook的PHP-SDK-v4-5.0.0 \文档

C:\facebook-php-sdk-v4-5.0.0\docs

下面是我的要求的代码片段:

<?php 
require_once('Facebook/autoload.php'); 

use Facebook\Facebook; 
use Facebook\FacebookApp; 
use Facebook\FacebookRequest; 

$app_id = "appid"; 
$secret = "secret"; 
$access_token = "accesstoken"; 

$fb = new Facebook([ 
    'app_id' => $app_id, 
    'app_secret' => $secret, 
    'default_graph_version' => 'v2.5', 
    'default_access_token' => $access_token, 
    ]); 

// Create request 
// $fbApp = new FacebookApp($app_id, $secret); 
// $request = new FacebookRequest($fbApp, $access_token, 'GET', '/GROUPID/posts'); 

// Alternative request 
// $request = $fb->request('GET', '/GROUPID/posts'); 


// Send the request to Graph 
try { 
    // $response = $fb->getClient()->sendRequest($request); 
    $response = $fb->get('/GROUPID/posts'); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    // When Graph returns an error 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    // When validation fails or other local issues 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

echo "<pre>"; 
// print_r($response->getDecodedBody()); 

$decodedBody = $response->getDecodedBody(); 
$data = $decodedBody['data']; 

foreach ($data as $key => $value) { 
    try { 
     $request = $fb->request('GET', '/'.$value['id'].'?fields=id,message,picture,object_id,attachments'); 
     $post = $fb->getClient()->sendRequest($request); 

    } catch(Facebook\Exceptions\FacebookResponseException $e) { 
     // When Graph returns an error 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
    } catch(Facebook\Exceptions\FacebookSDKException $e) { 
     // When validation fails or other local issues 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 
    print_r($post); 
} 

图形API资源管理器结果

Graph API Explorer Result

2

使用PHP SDK V5

使用组喂这个代码

$request = new FacebookRequest(
    $session, 
    'GET', 
    '/{group-id}/feed' 
); 
$response = $request->execute(); 
$graphObject = $response->getGraphObject(); 

对于页面饲料使用此代码

$request = new FacebookRequest(
    $session, 
    'GET', 
    '/{page-id}/feed' 
); 
$response = $request->execute(); 
$graphObject = $response->getGraphObject(); 
+0

感谢您的代码,但这是非常普遍的。你能更具体地了解如何获得$ session变量吗? – Sithu