如何从FB到网站获取图像

时间:2017-10-12 08:28:07

标签: facebook facebook-graph-api facebook-php-sdk app-secret

我正在努力从我们网站上的FB页面发布帖子。我们在FB页面中添加的每个新帖子和照片都需要在我们的网站上显示。

我有这段代码,但是没有按照我的需要工作。

require 'php-graph-sdk-5.x/src/Facebook/autoload.php';

$fb = new Facebook\Facebook([
    'app_id' => '...',
    'app_secret' => '{app-secret}', // don't know where to find app_secret for my page, I've found that just for apps, not pages
    'default_graph_version' => 'v2.10'
]);

$access_token = '...'; // generated in developers, but with just for 12 hours, than this token is expired... :-(

try {
    // Returns a `Facebook\FacebookResponse` object
    $response = $fb->get('me?fields=id,name,feed,data', $access_token);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
}

$graphNode = $response->getGraphNode();

foreach ($graphNode as $node) {
    foreach ($node as $items) {
        print_r($items);

        // when access token was valid, I got posts from out FB page. But with no images, didn't find how to get add images to this feed...
    }
}

所以,我的问题是:

  1. 我可以在哪里找到FB页面的app-secret?没有它,我无法连接到我的FB页面,我认为

  2. 如何生成永久访问令牌,或者如果不可能,如何使用其他方式?

  3. 如何在我的Feed中添加图片(新图片,共享图片等)?

  4. 感谢。

1 个答案:

答案 0 :(得分:1)

  1. 每页没有App Secret,每个App只有App Secret。您可以在“应用程序设置”中找到它。
  2. 扩展/永久令牌:https://developers.facebook.com/docs/facebook-login/access-tokens/http://www.devils-heaven.com/facebook-access-tokens/ - 为了获取不受限制的页面的订阅源条目,您只需使用应用访问令牌,就可以在PHP代码中对其进行硬编码。
  3. 在Feed中获取图片,而不仅仅是消息:您需要指定要获取的字段,或者只获取默认字段。它被称为"声明字段":https://developers.facebook.com/docs/graph-api/changelog#v2_4 - 另外,请查看API参考:https://developers.facebook.com/docs/graph-api/reference/post