Android 3.0。のFacebook SDKを使用するアプリを作成しようとしています。
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
StackOverflowを「remote_app_id」で検索しましたが、結果はiOSの「バンドルID」ですが、Androidの「remote_app_id」の意味がわかりません。 Facebookアプリの設定でパッケージ名とアクティビティ名を既に設定しています。エラーの理由がわかりません。
この質問を解決しました。問題は、「keytool」を使用して生成した「Key Hash」が間違っていたことです。 「keytool」がパスワードの入力を求めるとき、「Android」を使用する必要があります(引用符なし)。代わりに自分のパスワードを使用していました。パスワードを変更すると、問題はすぐに解消されました。お役に立てれば。
もう1つの考えられるエラー(私に起こった)は、Facebookアプリコンソールで「キーハッシュ」を設定し、別のキーストアを使用してAndroidアプリに署名する)です。
残念ながら、これは Facebook入門チュートリアル がこのエラーを引き起こすためです。 Android開発者はデフォルトのAndroidデバッグキーを例で使用する必要があり、キーハッシュは同じキーストアで生成する必要があることを説明していませんアプリケーションに署名します。
私の推奨事項は、Facebookコンソールで2つのキーハッシュを設定することです。
keytool -exportcert -alias androiddebugkey -keystore〜/ .Android/debug.keystore | openssl sha1-バイナリ| openssl base64
keytool -exportcert -alias yourappreleasekeyalias -keystore〜/ .your/path/release.keystore | openssl sha1-バイナリ| openssl base64
要確認:SDKツールによって生成されたデバッグキーで署名されたアプリケーションを公開することはできません。そのため、最初の前のコマンドラインを使用して生成されたハッシュキーのみを使用してアプリを公開することはできません(facebookのチュートリアルが示唆しているように)。
アプリケーションへの署名の詳細については、 アプリケーションへの署名 をご覧ください。
別のオプションは、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
with your own package name
。
これは私のために働いた!
間違ったハッシュキーを生成した間違ったopensslに閉じ込められました。 http://gnuwin32.sourceforge.net/packages/openssl.htm からopensslを使用して、問題を解決しました。
私も同じ問題を抱えていました。opensslが間違ったsha1を作成していたことがわかりました。新しいものをダウンロードし、それは魅力のように働いた。
デバッグキーを使用してハッシュキーを取得しています...パッケージに署名せず、アプリをデバッグモードで実行していない場合は、機能する可能性があります。あなたがする必要があるのは:
1)マニフェストファイルに移動し、Android:debuggable = "true"アプリケーションに追加します。
2)アプリを実行して、logcatを監視します。
3)x9SLcMXBlgly1f36PJuuc4a3YAcと一致するキーとなる新しいキーが印刷されます。これで、最後に=記号が追加されました。
4)facbook開発者サイトでこのキーを登録します
代替トリック
他の1つのことを行うことができます。このキーをFacebook開発者サイトx9SLcMXBlgly1f36PJuuc4a3YAc =に登録するだけです。
Facebookアプリで表示されているキーに=を追加するだけです。
できました!!これがうまくいくことを願っています。
また、facebook開発者ポータルの正しい場所にハッシュを入力してください。アプリケーションの設定を編集して、ネイティブAndroid App。
代わりに「サンプルアプリの設定」に誤ってハッシュを入れていました。