这份文档详细介绍了获取Facebook访问令牌以及使用令牌获取FB动态的步骤。
示例:
可以在此处查看一个实时示例。
https://newtonjoshua.com
Graph API简介:
Graph API是获取Facebook平台数据的主要方式。这是一个基于低级别HTTP的API,您可以使用它来查询数据、发布新闻、管理广告、上传照片以及其他应用程序可能需要完成的各种任务。
Facebook应用程序:
https://developers.facebook.com
创建一个Facebook应用程序。您将获得一个
App_Id
和
App_Secret
。
Graph API Explorer:
https://developers.facebook.com/tools/explorer/{{App_Id}}
/?method=GET&path=me%2Ffeed&version=v2.8
你将获得一个短暂的
access_token
。因此,这将是我们的
short_lived_access_token
。
注意:在创建访问令牌时,请选择您需要的所有fb字段。这将授予访问令牌获取这些字段的权限。
访问令牌扩展:
https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={{App_Id}}&client_secret={{App_Secret}}&fb_exchange_token={{short-lived-access_token}}
你将获得一个有效期为2个月的
access_token
。
访问令牌调试器:
https://developers.facebook.com/tools/debug/accesstoken?q={{access_token}}&version=v2.8
你可以查看
access_token
的详细信息。
JavaScript的Facebook SDK:
在你的HTML中包含以下JavaScript代码,异步加载SDK到你的页面中。
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
图形 API:
让我们调用 API 来获取我们的 Facebook ID、个人资料图片、封面图片和动态。
window.fbAsyncInit = function () {
FB.init({
appId: '{{App_Id }}',
xfbml: true,
version: 'v2.7'
});
FB.api(
'/me',
'GET', {
fields: 'id,picture{url},cover,feed',
access_token: {{access_token}}
},
function (response) {
if (response.error) {
console.error(response.error.message);
}
if (response.picture.data.url) {
profilePic = response.picture.data.url;
}
if (response.cover.source) {
coverPic = response.cover.source;
}
if (response.feed.data) {
feeds = response.feed.data;
feeds.forEach(function (feed) {
});
}
if (response.feed.paging.next) {
nextFeedPage = response.feed.paging.next;
}
}
);
};
使用Graph API Explorer设计查询,应在“fields”中输入(例如:“id,picture {url},cover,feed”)
现在,您可以使用访问令牌从Facebook Graph API获取您的Facebook数据。
请参考
https://developers.facebook.com/docs/graph-api/overview/
注意:您的
access_token
将在2个月后过期。之后,请创建新的access_token。