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/...

setAcccessTokenを介して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 では「me」をユーザー ID に置き換えるだけで、それもうまくいくと思います。

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

ただし、パスワードを変更し、Facebook にログインおよびログアウトすると、ユーザーのアクセス トークンが変更されることに注意してください。

于 2012-08-30T12:11:07.963 に答える