繁体   English   中英

Facebook Graph API获取页面发布的附件

[英]Facebook Graph API get page post's attachments

我正在尝试获取Facebook页面发布的图片附件的网址。 目的是将该图像嵌入网页中,以便网站始终显示该页面发布的最后一个图像附件。 我同时拥有网站和FB页面。

我还没有掌握有关处理Facebook Graph API的所有详细信息,但是到目前为止,这是我所做的:

1)在FB开发人员网站上,我创建了一个应用程序,获取了它的应用程序ID和密码;

2)我使用该信息获取访问令牌(只需将以下代码粘贴到浏览器中:

https://graph.facebook.com/oauth/access_token?client_id={my-client-id}&client_secret={my-client-secret}&grant_type=client_credentials

3)在我的网站中,我在body标签之后加载了Facebook JS SDK; 并从Facebook专页管理部门获得了我的Facebook专页ID;

4)现在,真正的问题开始了:如何查询Facebook以获取所需的信息-上一次发布图像的源URL?

到目前为止,我得到的最好结果是借助于jQuery进行了getJSON调用:

var fbfeed = $j.getJSON('https://graph.facebook.com/{my-page-id}/feed?access_token={my-token}&fields=attachments&limit=1');

这将在fbfeed变量中获取并存储一个JSON数组(如果我错了,请纠正我)。 该数组的键之一称为“ src”,其中包含附件的源URL –我需要将该图片嵌入到我的网站中的信息;

我有以下问题/担忧:-我还没有找到检索“ url”键值的方法–我该怎么做? 如何解析fbfeed变量并提取“ url”键的值?

–我对访问令牌的使用感到担心:

  • 通过在jQuery函数中使用访问令牌来公开访问令牌是否有问题? 有安全隐患吗? 如果是这样,我可以使用服务器端语言(例如PHP)“模仿”此请求吗?

  • 此访问令牌是否会过期(即我是否需要不时重复步骤2?)。 因此,想象一下我可以使它起作用,是否需要不时“刷新”访问令牌?

谢谢你的帮助。

我已经设法使用服务器端代码来获取所需的信息,尽管它可能不是最“干净的解决方案”:它将遍历页面的最后5个帖子,直到找到图片和发布网址:

<?php
$url = 'https://graph.facebook.com/{page-id}/feed?access_token={access-token}&fields=attachments,link&limit=5';
$json = file_get_contents($url);
$json_data = json_decode($json, true);

for($count = 0; $count < 5; $count++) {

$imagesource =  $json_data['data'][$count]['attachments']['data'][0]['media']['image']['src']; // gets the image url

$postlink = $json_data['data'][$count]['link']; // gets the post url

if (isset($imagesource) && isset($postlink)) {
    // do stuff with the image and post url
    break;
    };

};

// then I can do other stuff as fallback if the image url and post url are not found

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM