いくつかの 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 の統合 (アーキテクチャの問題)の拡張です 。答えについては、私の特定のケースではわかりません。