1

いくつかの Facebook データを統合して Web アプリを構築しようとしています。(特に Facebook イベント)。

同期を処理するためのベスト プラクティス/推奨事項を知りたいです。

これが私の現在の考えです。私のデータベースには、次のものが必要です。

  • ユーザー: Facebook ID、および友人のリストを使用
  • イベント:ユーザー一覧あり

マングースの構文では、次のスキーマを意味します。

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
   })
]);

ユーザーがログに記録されたら、現在のユーザーの FB イベントを同期する静的メソッドを最初に呼び出す URL にリダイレクトし、次のルートにリダイレクトします。

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

しかし、これは RESTful 標準に準拠していませんか? たとえば、私の方法では、次のようなルートは必要ありませんでした。

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

実際、この種のシントン化を適切に実装する方法がわかりません。フロントエンド ソリューションの将来の統合について心配しています。

誰かが私が欠けているものを指摘して、最終的にこの状況を処理するためのアドバイス/リンクを提供できますか? 公式 Facebook SDK を使用してクライアント側でイベントのリストを処理し、必要な ID を API に渡すだけの方がよいでしょうか? この場合、データを保護する方法は?

更新: これは、この質問Web アプリと facebook の統合 (アーキテクチャの問題)の拡張です 。答えについては、私の特定のケースではわかりません。

4

0 に答える 0