【发布时间】:2015-08-16 19:45:42
【问题描述】:
我正在尝试获取 facebook 页面发布的图像附件的 url。目标是将该图像嵌入网页中,以便网站始终显示该页面发布的最后一个图像附件。我拥有网站和 FB 页面。
我还没有掌握处理 Facebook Graph API 的所有细节,但这是我目前所做的:
1) 在 FB 开发者网站中,我创建了一个应用程序,获取其 App 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 步?)。那么,想象一下我可以让它工作,我是否需要不时“刷新”访问令牌?
感谢您的帮助。
【问题讨论】:
-
是的,访问令牌不应该以这种方式暴露在客户端代码中;如果您只想在客户端执行此操作,那么您应该让查看用户登录到您的应用程序,以便您可以使用他们自己的访问令牌。当然,您也可以在服务器端发出此请求。 // 用户访问令牌的有效期最长为 60 天,之后您必须续订。最好先使用页面访问令牌。 (同样,这当然不属于任何客户端代码。)
标签: json facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk