我在节点js中开发了一个facebook应用程序,它在heroku上托管。它将显示一些用户的公共数据。它工作正常两天,但从第二天起它显示新用户的应用程序错误,但对于已经使用该应用程序的用户它工作正常。我无法理解问题所在,如果我使用“foreman start”或“node web.js”在本地运行它我只会为新用户收到“此网页有重定向循环”消息。我已经尝试删除所有饼干和网页数据,即便如此,我得到了相同的消息。 我正在使用“facebook-node-sdk”进行facebook连接,使用“ejs”进行网页显示并为服务器表达。
App looks like this for old users
我在日志中也找不到任何东西。 任何人都可以帮我解决这个问题。
应用代码:
var express = require('express');
var Facebook = require('facebook-node-sdk');
var app = express.createServer();
var pic;
var cover;
app.configure(function () {
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: 'password' }));
app.use(Facebook.middleware({appId:'12345',secret:'12345'}));
});
app.set('view options', { layout: false });
app.set('view engine', 'ejs');
app.get('/', Facebook.loginRequired(), function (req, res) {
req.facebook.api('/me?fields=picture.type(square)', function(err, pict) {
pic=pict.picture.data.url;
});
req.facebook.api('/me?fields=cover',function(err,cover_pg){
cover=cover_pg.cover.source;
});
req.facebook.api('/me', function(err, user) {
res.render('home', {locals: {
title:'Public-Profile',
user:user.name ,
id:user.id,
gender:user.gender,
hometown:user.hometown.name,
current:user.location.name,
link:user.link,
pic:pic,
cover:cover
}
});
});
});
var port = process.env.PORT || 5000;
app.listen(port, function() {
console.log("Listening on " + port);
});
ejs文件代码:
<html>
<head>
<title><%= title %></title>
</head>
<body>
<h3>This app is ment to show all your facebook public profile</h3>
<h3>Welcome:</h3>
<h3><img src=<%= pic %>> <%= user %> </h3>
<a href=<%= cover %> target="_blank"><img src=<%= cover %> height="200"></a>
<h3>Your Facebook Id:<%= id %></h3>
<h3>Gender:<%= gender %></h3>
<h3>Your home-town:<%= hometown %></h3>
<h3>Your Current-Location:<%= current %></h3>
<a href=<%= link %> target="_blank"><h2>Visit Your Profile</h2></a>
<br/><br/><br/><br/><br/><br/><br/><br/>
<p>--By Dinesh</p>
<p>This app is still under development it will be ready soon...</p>
</body>
</html>