Facebook API:AppID | AppSecret令牌?

时间:2016-09-05 12:37:57

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我使用JS来使用facebook图形API获取页面供稿,但是为了获取页面的供稿,我需要一个访问令牌。我当前的访问令牌设置为在一小时后到期,但我可以使用AppID|AppSecret作为永久访问令牌。

我的问题是:由于查看页面源代码会显示访问令牌,使用appID | appSecret组合是否有一个安全的方法来获得永久访问权限?



var facebookFeed = [];
window.fbAsyncInit = function () {
    FB.init({
        appId: '173668203065748',
        xfbml: true,
        version: 'v2.7'
    });
    FB.api(
        '/officialstackoverflow/feed',
        'GET', {
            "access_token": "EAACEdEose0cBACP92ZBJexyw6OhDqs7SbBIme4CSisaI4UDgbJHDOa0NVjoXOXSJB7SD6549CB6M3KAdV11ySAn6wlJAMI4YEFEdfw2cM9JpovUG4NZC3VsCWcajbXfXWSWMmQQDR1fM9bzk6YPxMUYOiqBQnWrEm0IzbaCQZDZD",
            "fields": "full_picture,message,created_time,type,link,id"
        },
        function (response) {
            writePosts(response.data);
        }
    );
};

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

function writePosts(facebookFeed) {
    for (i = 0; i < facebookFeed.length; i++) {
        var currentPost = facebookFeed[i];
        var myDate = new Date(currentPost.created_time);
        if (currentPost.type == "photo" || currentPost.type == "status") {
        if(!currentPost.link)currentPost.link="http://facebook.com//"+currentPost.id;
            console.log(currentPost);
                   }
    }
}
&#13;
.facebookText {
	font-size: 16px;
	font-weight: 600;
	font-family: sans-serif;
}

.facebookImage {
	width: 100%;
	border:1px solid rgba(0,0,0,0.1)
}

.facebookPost {
	width: 400px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.3);
	box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.3);
	margin-bottom: 20px;
	padding: 10px 5px 3px 5px;
	transition: 0.3s ease all;
}

.facebookPost:hover {
	cursor: pointer;
	box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.5);
}

.facebookTime {
	font-size: 12px;
	font-style: italic;
	padding: 5px 0px;
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

由于某种原因,它被称为“App Secret”,您不应该在客户端上公开它。您不应该将任何令牌暴露给其他用户。您需要执行该服务器端,并且应该实现一些缓存 - 以防您获得许多用户并达到API限制。