获取 FaceBook 访问令牌以读取和写入 Facebook 社交图

本文档详细介绍了获取 facebook 访问令牌和使用令牌获取 FB 源的步骤。

示例:可以使用实例

https://newtonjoshua.com

Graph API 简介: Graph API 是将数据输入和输出 Facebook 平台的主要方式。它是一种基于 HTTP 的低级 API,可用于查询数据,发布新故事,管理广告,上传照片以及应用可能需要执行的各种其他任务。

FaceBook 应用程序:

https://developers.facebook.com

创建一个 Facebook 应用程序。你会得到一个 App_IdApp_Secret

图 API Explorer:

https://developers.facebook.com/tools/explorer/ {{App_Id}} /?method=GET&path=me%2Ffeed&version=v2.8

你会得到一个短暂的 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 异步加载到你的页面中

<script>
        (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'));
    </script>

图谱 API: 让我们进行 API 调用以获取我们的 FB ID,个人资料照片,封面图片和供稿。

<script>
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) {
            // view each feed content
                });
            }
            if (response.feed.paging.next) {
                nextFeedPage = response.feed.paging.next;
        // a request to nextFeedPage will give the next set of feeds
            }
            
        }
    );
};

</script>

使用 Graph API Explorer 来设计应在字段中输入的 querry(例如:‘id,picture {url},cover,feed’)

现在,你可以使用 access_token 从 Facebook Graph API 获取你的 Facebook 数据。参考 https://developers.facebook.com/docs/graph-api/overview/

注意:你的 access_token 将在 2 个月后到期。之后创建一个新的 access_token。