我正在使用JS通过facebook graph API获取页面供稿,但是为了获取页面的供稿,我需要访问令牌。我当前的访问令牌设置为在一小时内到期,但是我可以将AppID|AppSecret
用作永久访问令牌。
我的问题是:由于查看页面源将显示访问令牌,因此使用appID | appSecret组合是拥有永久access_token的安全方法吗?
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);
}
}
}
.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;
}
最佳答案
由于某种原因,它被称为“应用程序秘密”,您不应在客户端上公开它。无论如何,您都不应向其他用户公开任何令牌。您需要在服务器端进行操作,并且应该实现一些缓存-以防万一您有很多用户并达到API限制。
关于javascript - Facebook API:AppID | AppSecret token ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39330804/