4

私はAndroidアプリを開発しています。私のアプリでは、私はFacebookのログインを統合しています。私は一度だけFacebookログインの開発を終えました。今回開発したときは、Facebookのコールバック関数は呼び出されません。私もエラーを確認することはできません。何が間違っているのか分かりません。Androidでコールバック関数が呼び出されていない

私はその後、私はキーハッシュを生成し、次のようにFacebookの開発者設定で設定のGradle

compile 'com.facebook.android:facebook-android-sdk:4.1.0' 

を使用してFacebookのSDKをインストール:

enter image description here

これは私のマニフェスト

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="tonightfootballreport.com.tfr" > 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <application 
     android:name="tonightfootballreport.model.TfrApplication" 
     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"/> 
     <activity 
      android:configChanges="orientation|screenSize" 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:configChanges="orientation|screenSize" 
      android:name=".FacebookConfigActivity" 
      android:label="Facebook" 
      android:theme="@style/AppTheme.NoActionBar" > 
      <intent-filter> 
       <action android:name="tonightfootballreport.com.tfr.FacebookConfigActivity"/> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.facebook.FacebookActivity" 
      android:configChanges= 
       "keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar" 
      android:label="@string/app_name" /> 

     <provider android:authorities="com.facebook.app.FacebookContentProvider1817380365215100" 
      android:name="com.facebook.FacebookContentProvider" 
      android:exported="true" /> 
    </application> 

</manifest> 
です

あなたが見ることができるようにFacebookのログイン主なアクティビティにはないので、私はFacebookConfigActivityをDeveloper Settingsに設定しました。

MainActivityのボタンをクリックすると、FacebookConfigActivityが開き、Facebookのログインが実行されます。以下はコードです。

public class FacebookConfigActivity extends AppCompatActivity { 
    private CallbackManager callbackManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FacebookSdk.sdkInitialize(getApplicationContext(), AppConfig.FACEBOOK_REQUEST_CODE); 
     AppEventsLogger.activateApp(this); 
     setContentView(R.layout.activity_facebook); 
     setUpCallBack(); 
     loginInToFacebook(); 
    } 


    private void loginInToFacebook() 
    { 
     LoginManager.getInstance().logInWithReadPermissions(FacebookConfigActivity.this,Arrays.asList("public_profile")); 
    } 

    private void setUpCallBack() 
    { 
     callbackManager = CallbackManager.Factory.create(); 

     LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       //show share alert 
       //then share 
       Log.i("LOGIN_SUCCESS","LOGIN_SUCCESS"); 
      } 


      @Override 
      public void onCancel() { 
       Toast.makeText(getBaseContext(), "Operation canceled", Toast.LENGTH_SHORT).show(); 
       finish(); 
      } 

      @Override 
      public void onError(FacebookException error) { 
       Toast.makeText(getBaseContext(), "Error in connecting to Facebook", Toast.LENGTH_SHORT).show(); 
       finish(); 
      } 
     }); 
    } 
} 

ご覧のとおり、単純なFacebookのログインです。ログインボタンをクリックすると、下に表示されているFacebookログインフォームへの認証情報を入力します。

enter image description here

私は次のステップで[OK]をクリックした後に続いて、FacebookConfigActivityが表示され、コールバック関数が呼び出されません。キャンセルをクリックすると、Facebookキャンセルコールバックも呼び出されません。考えられるエラーは何ですか?

答えて

7

あなたは)onActivityResult(でリスナーを入れて活動のonActivityResultメソッド内のコードの下に置く

を忘れてしまった:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 
+0

屋ああ。ありがとう、 –

+0

あなたは大歓迎です。 –

関連する問題