2

AndroidのアクティビティからFacebookの承認を呼び出そうとしていますが、何らかの理由でonActivityResultを呼び出すことはありません。Android SDKでfacebook.authorizeを使用してもonActivityResultが呼び出されない

私はofficial tutorialに続いて、私もちょうどこの機能を試すために、非常にシンプルなアプリケーションを作成しました:

public class SimpleFacebookActivity extends Activity { 
    private EditText console; 
    private Facebook facebook = new Facebook(APP_ID); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     this.console = (EditText)super.findViewById(R.id.console); 
     this.console.append("Started\n\n"); 

     String text = Integer.toString(super.getIntent().getFlags() & Intent.FLAG_ACTIVITY_NO_HISTORY); 
     this.console.append(text); 

     this.facebook.authorize(this, new DialogListener() { 
      @Override 
      public void onComplete(Bundle values) {} 

      @Override 
      public void onFacebookError(FacebookError error) {} 

      @Override 
      public void onError(DialogError e) {} 

      @Override 
      public void onCancel() {} 
     }); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     this.console.append("onActivityResult, request code: " + requestCode + "\n\n"); 
     super.onActivityResult(requestCode, resultCode, data); 
     this.facebook.authorizeCallback(requestCode, resultCode, data); 

    } 
} 

を私はログインするテキストエディットウィジェットを追加し、私はこのすべてのアプリケーションを実行すると、私は取得は、次のとおりです。

Started 

0 

私は、彼らはチュートリアルで、私はスタック オーバーフローにここで見た別のポストにそれを言及するのでFLAG_ACTIVITY_NO_HISTORYが設定されているかどうかを確認するためにチェックしますが、私の場合には、それが設定されていないのでできません問題である。

この問題を解決するにはどうすればよいですか?

+0

私は全く同じ問題があります。あなたがこれのための解決策を持っているかどうか教えてください! –

+0

それはしばらく前に、私は本当に覚えていないが、私は以下の答えを受け入れたように見える、それはあなたのためにそれを解決していない? –

+0

いいえ...私はkeytoolで間違ったパスワードを入力しました.. "android"というパスワードを入力して修正しました;) –

答えて

5

私はあなたがFacebookのでアプリにはいくつかのキーを追加する必要があるため、これがあると思う:

https://developers.facebook.com/docs/mobile/android/build/#sig

しかし、キーが正しくあなたがステップバイステップガイドに従ってときに作成、そうされていませんFacebook SDKのデバッガをチェックして、使用しているキーがあなたのアプリと同じではないことを伝えるエラーを投げてしまいました。

+0

私はFacebookの開発者用アプリケーションにキーを追加しました。私はsdkを使って正常に認証することができたので、正常に動作しています。認証プロセスが完了した時点でonActivityResultメソッドが呼び出されていません。 –

+4

私が見ている問題は、あなたがDialogを開くことを期待していることです。ダイアログを開くと、2つのことが起こります。 1 - あなたは(私はあなたがログインしていると仮定している)あなたの許可を行うかもしれないあなたの電話(facebookアプリ)にインストールされてfacebook.katanaを持って、その外部アプリはあなたにあなたのActivityResult、それが32665だと思ってください。 2. 2番目のケースでは、アプリケーションをインストールしていないので、あなたのアクティビティ内でWeb Viewを開くことができます。VIEW、あなたの活動を決して残さないでしょう。メソッド... – desgraci

+2

ダイアログリスナーは、例のように正しくログに記録し、onComplete(Bundle values){}メソッドを呼び出します。 facebook appを使ってactivityResultでコールバックを強制する場合は、インテントとstarActivityForresultを実装する必要がありますが、これはまったく推奨されません。あなたのすべての疑問を明確にすることを願っています。 – desgraci

0

私はFacebook SDKを知らないが、これらの方法を実装する必要があると私には思われます。DialogListenerそれ以外の場合は、もちろんコールバックはありません。

+0

DialogListenerメソッドを実装することは役に立たず、onCompleteでいくつかのコードを追加しようとしました。そこに行きますが、onActivityResultメソッドはまだ呼び出されていません。 –

+0

これは正常ではありませんか? onActivityResultは、インテントを使用してactivityForResultを開始したときにのみ呼び出されます。 – Peterdk

+0

@Peterdkでは、シングルサインオンのログインプロシージャが呼び出されると(activityForResultを使用して起動されます)、そこにアクセスします。 – harism

関連する問題