43

Facebook SDK forAndroid3.0を使用するアプリを作成しようとしています。しかし、私が電話しようとしているとき

Session.openActiveSession

CLOSED_LOGIN_FAILEDのSessionStateを取得するだけで、LogCatは次のようになります。

12-16 00:03:40.510: W/fb4a:fb:OrcaServiceQueue(4105): com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id 

「remote_app_id」でStackOverflowを検索した結果、iOSでは「バンドルID」になりましたが、Androidでは「remote_app_id」が何を意味するのかわかりません。Facebookアプリの設定でパッケージ名とアクティビティ名をすでに設定しています。エラーの理由がわかりません。

4

7 に答える 7

77

(私に起こった)別の考えられるエラーは、Facebook App Consoleで「キーハッシュ」を設定し、別のキーストアを使用してAndroidアプリに署名することです。

残念ながら、これはFacebook GettingStartedTutorialがこのエラーを引き起こすために発生します。これは、Android開発者が例でデフォルトのAndroidデバッグキーを使用する必要があることを示しており、アプリケーションに署名するのと同じキーストアでキーハッシュを生成する必要があることを説明していません。

私の推奨事項は、Facebookコンソールに2つのキーハッシュを設定することです。

  1. デフォルトのAndroidデバッグキー:

keytool -exportcert -alias androiddebugkey -keystore〜/ .android / debug.keystore | openssl sha1 -binary | openssl base64

  1. アプリケーションリリースキー:

keytool -exportcert -alias yourappreleasekeyalias -keystore〜/ .your / path / release.keystore | openssl sha1 -binary | openssl base64

注意:SDKツールによって生成されたデバッグキーで署名されたアプリケーションを公開することはできません。そのため、最初の前のコマンドラインを使用して生成されたハッシュキーのみを使用してアプリを公開することはできません(Facebookチュートリアルが示唆しているように)。

アプリケーションへの署名の詳細については、「アプリケーションへの署名」を参照してください。

于 2012-12-26T14:34:58.730 に答える
61

もう1つのオプションは、Facebookに送信されたキーハッシュを印刷して、その値を使用することです。

onCreate()メインアクティビティのメソッドに次の変更を加えます。

try {
    PackageInfo info = getPackageManager().getPackageInfo(
          "com.facebook.samples.loginhowto", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures){
           MessageDigest md = MessageDigest.getInstance("SHA");
           md.update(signature.toByteArray());
           Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

に置き換えcom.facebook.samples.loginhowtoますyour own package name

これは私のために働いた!

于 2013-01-20T02:53:25.733 に答える
34

私はこの質問を解決しました。問題は、「keytool」を使用して生成した「KeyHash」が間違っていたことです。「keytool」でパスワードの入力を求められたら、「android」を使用する必要があります(引用符は含みません)。代わりに自分のパスワードを使用していました。パスワードを変更すると、問題は解決しました。お役に立てれば。

于 2012-12-16T01:50:25.847 に答える
5

間違ったハッシュキーを生成した間違ったopensslに閉じ込められました。問題を解決したhttp://gnuwin32.sourceforge.net/packages/openssl.htmのopensslを使用しました。

于 2013-04-17T12:17:33.740 に答える
4

私は同じ問題を抱えていましたが、opensslが間違ったsha1を作成していることがわかりました。新しいものをダウンロードして、それは魅力のように機能しました。

于 2013-02-16T02:53:37.143 に答える
0

また、Facebook開発ポータルの正しい場所にハッシュを入力していることを確認してください。アプリケーション設定を編集し、ネイティブAndroidアプリを選択します。

代わりに、誤って「サンプルアプリの設定」にハッシュを入れていました。

于 2013-04-21T22:54:40.543 に答える
0

デバッグキー付きのハッシュキーを取得しています...パッケージに署名してアプリをデバッグモードで実行していない場合は、これが機能する可能性があります。あなたがする必要があるのは:

1)マニフェストファイルに移動し、アプリケーションandroid:debuggable="true"に追加します。

2)アプリを実行し、logcatを監視します。

3)x9SLcMXBlgly1f36PJuuc4a3YAcと一致するキーとなる新しいキーが印刷されます。取得したキーは、最後に=記号が付いています。

4)このキーをfacbook開発者サイトに登録します

代替トリック

もう1つ行うことができます。このキーをFacebook開発者サイトx9SLcMXBlgly1f36PJuuc4a3YAc=に登録するだけです。

Facebookアプリで表示されているキーに=を追加するだけです。

完了です!! これがうまくいくことを願っています。

于 2014-07-30T11:22:53.623 に答える