gpt4 book ai didi

javascript - Meteor 如何访问服务器端和客户端的 Facebook Graph Api

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:49 27 4
gpt4 key购买 nike

accounts-facebook包仅提供登录和注销功能。

meteor-fbgraph在服务器端访问 fbgraph。

facebook-sdk允许在客户端访问 fbgraph。

问题是 facebook-sdk 不使用 Accounts-ui 提供的任何东西,例如 Accounts.onLogin 事件或 Accounts.ui.config。单击 {{> loginButtons}} 后,当用户仅登录时 Meteor.user() 确实注销,facebook-sdk 仍然有它是 AccessToken 并保持登录状态。结果,应用程序的一半保持登录状态(客户端),一半保持注销状态(服务器)。

这是我将帐户与 FB 事件配对的解决方法,但我认为这不是一个合适的解决方案。

Accounts.onLogin(function(){
FB.login();
AccountsOnLogout(function(){
FB.logout();
});
});

function AccountsOnLogout(callback){
var waitForLogout = setInterval(function() {
if (!(Meteor.user())) {
console.log("logged out");
callback();
clearInterval(waitForLogout);
}
}, 1000);
}

您是否知道如何在客户端访问 fbGraph?

最佳答案

我只为您使用“kinda workaround”,因为无论如何我都会在服务器上操作和缓存响应数据。所以我只是调用方法并使用服务器端。

Facebook = (accessToken) ->
@fb = Meteor.npmRequire 'fbgraph'
@accessToken = accessToken
@fb.setAccessToken @accessToken
@options =
timeout: 3000
pool:
maxSockets: Infinity
headers:
connection: "keep-alive"
@fb.setOptions @options


FBQuery = (query, method, fbObject) ->
if typeof method is 'undefined' then method = 'get'
console.log "query is: " + query
data = Meteor.sync((done) ->
fbObject[method](query, (err, res) ->
done(null, res)
)
)
data.result


Meteor.methods(
getUserData: ->
fb = new Facebook(Meteor.user().services.facebook.accessToken)
FBQuery '/me', 'get', fb

getUserEvents: ->
fb = new Facebook(Meteor.user().services.facebook.accessToken)
FBQuery '/' + Meteor.user().services.facebook.id + '/events', 'get', fb

getUserGroups: ->
fb = new Facebook(Meteor.user().services.facebook.accessToken)
FBQuery '/' + Meteor.user().services.facebook.id + '/groups?fields=name&limit=1000', 'get', fb
)

和客户端

Template.home.events(
'click #btn-user-data': (e) ->
Meteor.call('getUserData', (err, data) ->
$('#result').text(JSON.stringify(data, undefined, 4))
)
)

关于javascript - Meteor 如何访问服务器端和客户端的 Facebook Graph Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30911944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com