私は最新のfacebook sdk 3を使用しています。次のようなクラスを構築しようとしています:
facebook (アプリケーション) に接続し、私を返します: 1. アクセス トークン。2. 初めての登録またはログインの場合。1と2を取得した後、接続は必要ありません。
SDKサンプルSessionLoginSampleのように、Facebookアプリケーションを文字列に入れました。
私のコード:
private static class FacebookConnector implements Session.StatusCallback{
private static FacebookConnector instance = null;
private Fragment mFragment;
public static FacebookConnector getInctance(Fragment fragment){
if(instance == null){
instance = new FacebookConnector();
}
instance.setFragment(fragment);
return instance;
}
private FacebookConnector(){
}
public Fragment getFragment() {
return mFragment;
}
public void setFragment(Fragment fragment) {
mFragment = fragment;
}
//Facebook fb = new Facebook("app_id");
//fb.getAccessToken();
public void connect(){
Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if(session == null){
session = new Session(mFragment.getActivity());
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(mFragment).setCallback(this));
}
}
}
@Override
public void call(Session session, SessionState state, Exception exception) {
String token = session.getAccessToken();
System.out.println(token);
}
}
私は例外を得ました:
4-03 17:25:47.651: E/AndroidRuntime(689): FATAL EXCEPTION: main
04-03 17:25:47.651: E/AndroidRuntime(689): java.lang.NullPointerException: Argument 'applicationId' cannot be null
04-03 17:25:47.651: E/AndroidRuntime(689): at com.facebook.internal.Validate.notNull(Validate.java:29)
04-03 17:25:47.651: E/AndroidRuntime(689): at com.facebook.Session.<init>(Session.java:224)
04-03 17:25:47.651: E/AndroidRuntime(689): at com.facebook.Session.<init>(Session.java:209)
多分もっと簡単な解決策がありますか?