Facebook開発者ページで説明されているように、単純なログインアクティビティを機能させようとしています: https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/
これまでの私のコード:
package com.xxxx.android;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockActivity;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
public class MyTestsActivity extends SherlockActivity implements OnClickListener{
private Button mFbLogin;
private TextView mWelcome;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_tests);
setViews();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()) {
case R.id.bFbLogin:
facebookLogin();
break;
}
}
private void facebookLogin() {
// TODO Auto-generated method stub
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
mWelcome.setText("Hello " + user.getName() + "!");
}
}
});
}
}
});
}
private void setViews() {
mFbLogin = (Button) findViewById(R.id.bFbLogin);
mFbLogin.setOnClickListener(this);
mWelcome = (TextView) findViewById(R.id.tvWelcome);
}
}
アプリが読み込まれ、ログイン ボタンを押すと、ダイアログが開き、アプリへのアクセスを許可するように求められます。[はい] を押すと、アクティビティは元の状態に戻ります。textview は、facebook が指定した onCompleted メソッドで発生するはずのユーザー情報で更新されません。何か案は?