ログインページで、ACCESS_TOKEN を取得します。しかし、Friendlistページでは、ACCESS_TOKENを取得できません。私のコードは次のとおりです。私のコードを確認してください。
ユーザーログインコード
mFacebook.authorize(this, sPermissions, new AuthorizeListener());
私は AuthorizeListener() を使用します。このコード
public class AuthorizeListener implements DialogListener {
String actoken;
@Override
public void onComplete(Bundle values) {
if (MainFragment.FacebookD) {
Log.w(MainFragment.LOG_TAG, "::: onComplate :::");
Log.w(MainFragment.LOG_TAG, "Access token : " + mFacebook.getAccessToken());
Token = mFacebook.getAccessToken();
actoken = getAppPreferences(IntroActivity.this, "ACCESS_TOKEN");
Log.w("GETAPPPREFERENCES",actoken);
}
}
......
onActivityResult メソッドも書いています。このコード。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MainFragment.FACEBOOK_AUTH_CODE) {
mFacebook.authorizeCallback(requestCode, resultCode, data);
Log.w("ACTIVITYRESULT","ACTIVITYRESULT");
}
}
......
Intent intent = new Intent(IntroActivity.this, NorinuriMain.class);
startActivity(intent);
ログイン後、インテントページ(フレンドリスト取得)
フレンドリストコードを取得する
public void setupFacebookfriend(){
Log.w("FacebookFREIND","START");
String userName;
String userSex;
try {
Log.w("gogogogo","START");
final JSONObject json = Util.parseJson(mFacebook.request("me/friends"));
JSONArray d = json.getJSONArray("data");
JSONObject o ;
for(int i = 0 ; i < d.length() ; i++){
JSONObject post=d.getJSONObject(i);
o = d.getJSONObject(i);
list.add(o.getString("data"));
list.add(post.getString("name"));
}
}catch (Exception e) {
e.printStackTrace();
}
facebookListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, list));
facebookListView.setItemsCanFocus(false);
facebookListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
このロジックはOKです。しかし、エラーが発生します。
com.facebook.android.FacebookError: 現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります。
なぜ起こるの??