如何通过Facebook同步尊重RESTful与数据

时间:2014-02-27 00:28:30

标签: node.js facebook-graph-api data-binding facebook-oauth facebook-node-sdk

我正在尝试构建一个集成了一些Facebook数据的网络应用程序。 (特别是Facebook活动)。

我想知道处理同步的最佳做法/建议是什么。

这是我目前的想法: 在我的数据库中,我需要:

  • 用户:使用Facebook ID和朋友列表
  • 事件:使用用户列表

在mongoose语法中,它表示以下架构:

var UserSchema = new Schema({
  id: { type: String, default: '' },
  friends: [{type : Schema.ObjectId, ref : 'User'}]
})
mongoose.model(‘User', UserSchema )

var EventSchema = new Schema({
  eid: { type: String, default: '' },
  users: [{type : Schema.ObjectId, ref : 'User'}]
})
mongoose.model('Event', EventSchema)

目前,我正在使用Passport-Facebook来处理身份验证和Facebook-Node-SDK(https://github.com/Thuzi/facebook-node-sdk)来进行图形调用。 所以我可以在我的Passport FacebookStrategy中设置我的accessToken:

passport.use(new FacebookStrategy({
  clientID: config.facebook.clientID,
  clientSecret: config.facebook.clientSecret,
  callbackURL: config.facebook.callbackURL
 },
 function(accessToken, refreshToken, profile, done) {
   FB.setAccessToken(accessToken); //Setting access token
   User.findOne({ 'id': profile.id }, function (err, user) {
      //handling creation in case of error 
      //then synchronization of friends
   })
]);

用户登录后,我将其重定向到一个URL,该URL首先调用静态方法,该方法同步当前用户的FB事件,然后将其重定向到以下路径:

app.get('/events', events.index)

但这不符合RESTful标准吗? 例如,使用我的方法,我不需要这样的路线:

app.post('/events', events.add)
app.put('/events', events.update)
app.del('/events', events.destroy)

事实上,我没有看到如何正确实现这种类型的合成化,我担心未来的前端解决方案的集成。

有人能指出我缺少的东西,并最终给出一些建议/链接来处理这种情况吗? 使用官方Facebook SDK处理客户端事件列表是否更好?只需向我的API提供所需的ID?在这种情况下,如何保护数据?

更新: 这是这个问题的延伸Web app integration with facebook ( architecture issues ) 关于答案,我无法用我的具体案例弄明白。

0 个答案:

没有答案