我使用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;
答案 0 :(得分:2)
由于某种原因,它被称为“App Secret”,您不应该在客户端上公开它。您不应该将任何令牌暴露给其他用户。您需要执行该服务器端,并且应该实现一些缓存 - 以防您获得许多用户并达到API限制。