7

我想将故事发布到用户时间轴,即使他们没有使用 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/...

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

4

2 回答 2

21

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

FB.api(
  '/me/feed',
  'post',
  {
    access_token : 'access_token_for_some_user_fetched_from_your_database',
    additional_parameter_foo : 'bar'
  }
);
于 2012-08-30T13:19:39.647 回答
0

我对 PHP SDK 有更多的了解,但在 PHP 中,您可以将“我”替换为用户 ID,我想它也适用于您:

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

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

于 2012-08-30T12:11:07.963 回答