2017-01-21 4 views
0

私は自分のアプリを介して接続できます(私のプロフィール設定のオンラインで、そのアプリケーションに許可が与えられているのがわかります)。私はこれを使用して、私の活動でAndroid Facebookのトークンは無効です

@Override 
public void onCreate() { 
    super.onCreate(); 
    getFbKeyHash(); 
    FacebookSdk.sdkInitialize(getApplicationContext(), new FacebookSdk.InitializeCallback() { 
     @Override 
     public void onInitialized() { 
      if(AccessToken.getCurrentAccessToken() == null){ 
       System.out.println("not logged in yet"); 
       isFBLogged = false; 
      } else { 
       isFBLogged = true; 
       System.out.println("Logged in"); 
      } 
     } 
    }); 
    callbackManager = CallbackManager.Factory.create(); 
    AppEventsLogger.activateApp(this); 
} 

:私はこれは私のアプリケーションの私のonCreateメソッドです

...アプリを通じてログインするが、私は私のアクセストークンを取得したいとき、それがヌルとして返されます方法:

LoginManager.getInstance().logInWithPublishPermissions(FacebookTest.this, Arrays.asList("publish_actions")); 

これは私のマニフェストファイルです:

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

<application 
    android:name=".MyApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/facebook_app_id" /> 
    <provider 
     android:authorities="com.facebook.app.FacebookContentProvider" 
     android:name="com.facebook.FacebookContentProvider" 
     android:exported="true"/> 

    <activity android:name=".Activity.FacebookTest"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Activity.MainActivity" /> 
</application> 

私は任意のアクセストークンを持っていない理由は、任意の手掛かり?

+0

あなたがLoginManager.getInstance()を使用してみましたregisterCallback(callbackManager、コールバック); –

+0

私はこれと何をしなければなりません...? – dequec64

+0

あなたはログインした結果を受け取ってaccesstokenを得ることができます –

答えて

2

はチェックこのコード:

public class MainActivity extends AppCompatActivity { 


    private CallbackManager callbackManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FacebookSdk.sdkInitialize(getApplicationContext()); 
     setContentView(R.layout.activity_main); 

     LoginButton loginButton = (LoginButton) findViewById(R.id.login_button); 
     loginButton.setReadPermissions(Arrays.asList("public_profile", "email", 
        "user_birthday")); 



     callbackManager = CallbackManager.Factory.create(); 
     LoginManager.getInstance().registerCallback(callbackManager, callback); 
    } 

    FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      // success 
     } 

     @Override 
     public void onCancel() { 
      // cancel 
     } 

     @Override 
     public void onError(FacebookException error) { 
      // error 
     } 
    }; 



    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 
} 
関連する問題