在FB.init中设置用户(访问令牌)

时间:2012-07-19 11:53:49

标签: facebook opengraph facebook-access-token facebook-javascript-sdk

我想将故事发布到用户时间线,即使他们没有登录Facebook。实际上我在数据库中存储了用户访问令牌,如果用户使用电子邮件登录,我将为她检索访问令牌。它在php中运行良好(例如在setAccessToken(token_from_database)之后获取好友列表,但是当我发布故事时,它总是发布到当前fb登录帐户的时间轴。

我认为问题是由fb.init引起的:

window.fbAsyncInit = function() {
        FB.init({
            appId      : 'XXX', // App ID
            status     : true, // check login status
            cookie     : true // enable cookies to allow the server to access the session
            xfbml      : true  // parse XFBML
        });
    };

以后:

FB.api('/me/...

将登录帐户设为“我”,而不是我通过setAcccessToken在php中设置的帐户。 我如何发布到该帐户(使用token_from_database指定)的时间表?任何想法?

2 个答案:

答案 0 :(得分:20)

尝试传递您要用作params FB.api对象的一部分的访问令牌 - 它应该与访问API服务器端时的工作方式相同。

FB.api(
  '/me/feed',
  'post',
  {
    access_token : 'access_token_for_some_user_fetched_from_your_database',
    additional_parameter_foo : 'bar'
  }
);

答案 1 :(得分:0)

我有更多关于PHP SDK的知识,但在PHP中你可以用用户ID替换“我”,我想它也适合你:

FB.api('/'+fbuserid+'/...');

但是您应该知道,在更改密码以及从Facebook登录和注销后,用户的访问令牌会发生变化。