0

我在节点 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>
4

1 回答 1

0

在这里,我们有很多选项来配置 facebook 身份验证。

使用 Passsport.js

http://passportjs.org/

希望这会奏效..

于 2013-08-24T12:40:51.883 回答