1

同じ質問をして申し訳ありませんが、以前に投稿されたすべてのスレッドを読み、提案されたすべてを試しましたが、それでも失敗しました。

私は同じようになっています:

アプリがFacebookログイン用に正しく構成されていません。

スクリーンショット

問題はここと同じように見えますが、util.javaでENABLE_LOGをtrueに設定した後でも、Logcatをエラーとして赤で出力できませんでした。

app_idを確認し、developer.facebookのハッシュキーをコピーしましたが、すべてが正しく見えます。しかし、どこが間違っているのか、また、ネイティブのFacebookアプリなしでアプリを使用したときに正しく機能しているのかわかりません。

しかし、ネイティブFacebookを使用してログインしたいと思います。

4

1 に答える 1

3

最新の 3.0 SDK を使用していると仮定して、次の 2 つのオプションを試してください。

オプション 1: (Windows)

%KEYTOOLPATH%\keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | %OPENSSLPATH%\openssl sha1 -binary | %OPENSSLPATH%\openssl base64

例:

C:\Program Files (x86)\Java\jdk1.7.0_09\bin\keytool" -exportcert -alias androiddebugkey -keystore "C:\Home\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64 

パスワードを使用してください: アンドロイド

オプション 2: (FB に送信されたキー ハッシュを出力)

( Facebook SDK for Android のバリエーション - サンプルアプリは動作しません)

このコードをアクティビティに追加します。

    try {
        PackageInfo info = getPackageManager().getPackageInfo("your package name, e.g. com.yourcompany.yourapp]", 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) {

    }

例: HelloFacebookSampleActivity で、onCreate() メソッドに次の一時的な変更を加えます。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        PackageInfo info = getPackageManager().getPackageInfo("com.facebook.samples.hellofacebook", 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) {

    }

    ...
}

サンプルを実行すると、次のような KeyHash タグで logcat 出力が得られるはずです。

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

アプリの Facebook のアプリ ダッシュボード設定でその値を使用します。

于 2012-12-20T19:02:34.443 に答える