我在节点 js 中开发了一个 facebook 应用程序,它托管在 heroku 上。它将显示一些用户的公共数据。它工作了两天,但从第二天开始,它显示新用户的应用程序错误,但对于已经使用该应用程序的用户来说,它工作正常。我不明白如果我使用“foreman start”或“node web.js”在本地运行它,问题出在哪里,我会收到“这个网页有一个重定向循环”的消息,只针对新用户。我已经尝试删除所有cookie 和网页数据即使在那时我也收到了同样的信息。我将“facebook-node-sdk”用于 facebook 连接,“ejs”用于显示网页并用于服务器。
我在日志中也找不到任何东西。谁能帮我解决这个问题。
应用代码:
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>