7

古いFacebookクラスを非推奨にし、 Sessionクラスを使用してログインする新しい方法を導入する新しいバージョンの Facebook SDK (3.0) があるようです。

新しいログイン API を使用して簡単なアプリをすばやく作成しました。

public class MainActivity extends Activity {

private Session mFacebookSession;

private StatusCallback fbStatusCallback = new StatusCallback() {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        Log.v("dbg", "state: " + state);
        Log.v("dbg", "session: " + session);
    }
};

public void bc(View view)
{
    mFacebookSession = Session.openActiveSession(this, true, fbStatusCallback);
}
//etc..
}

コールバックは 2 回呼び出される必要があります。1 回目は実際のセッション トークンを破棄するため、2 回目は新しいアクセス トークンを取得するためです。もちろん、アプリIDはマニフェストファイルなどのメタデータとして設定されています.

コードを実行すると、Facebook ログイン ダイアログが表示され、ユーザー名とパスワードを入力して閉じます。

ただし、ログには次のようにしか表示されません。

01-17 03:28:01.587: V/dbg(7002): state: OPENING
01-17 03:28:01.587: V/dbg(7002): session: {Session state:OPENING, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:xxxxxxxxxxxxxxx}

その結果、mFacebookSession.getAccessToken()を呼び出そうとすると、空の文字列 (null ではない) が返されます。

問題に見えるのは?

これをどのように解決したか(後で)

onActivityResult をオーバーライドし、Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); を呼び出しました。

4

2 に答える 2

1

私は他の人のためにこれをここに置くつもりです:

Facebook SDK は、何かを忘れたことを知らせるのが非常に苦手です。うまくいかない場合は、Facebook アプリを再確認し、何かを忘れたり、間違った値を入力したりしていないことを確認してください。私の場合、Sterpu Mihai の場合は appID が間違っていました。それはハッシュ キーでした。

于 2013-01-17T02:31:00.793 に答える