0

PhoneGap と Ionic を使用して、iOS で facebookConnectPlugin を動作させることができました。問題は、Android でまったく同じアプリを実行しようとすると、「facebookConnectPlugin が定義されていません」というエラーが表示されることです。私は PhoneGap Build を使用していますが、Android 用にネイティブにビルドしていません。

Androidで動作させるために私が取った手順は次のとおりです。

1) 新しいキーストアを生成しました。

"C:\Program Files (x86)\Java\jre1.8.0_60\bin\keytool.exe" -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 

2) このキーストアを使用して新しいハッシュを作成しました。

"C:\Program Files (x86)\Java\jre1.8.0_60\bin\keytool.exe" -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

パスワードを要求されるすべての場所でパスワード「android」を使用しました(キーストアとハッシュ用)。

3) config.xml ドキュメントに以下を追加しました。

<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.9.0">
    <param name="APP_ID" value="XXXXXXXXXX" />
    <param name="APP_NAME" value="MyApp" />
</gap:plugin>

Facebook から取得した APP_ID と APP_NAME は Facebook の表示名です。

4) 指定したキーストアとエイリアス「androiddebugkey」をアップロードして、PhoneGap ビルドで Android キーを作成しました。証明書パスワードを含むすべてのパスワードについて、パスワード「android」を入力しました。

5) アプリケーションを PhoneGap ビルドにアップロードし、Android エミュレーター (Visual Studio Emulator for Android を使用する Lollipop) にインストールし、次のコードを使用して Facebook にログインしようとしました。このコードは、$ionicPlatform.ready の後に実行されます。

var _this = this;    
var fbLoginSuccess = function (userData) {
    facebookConnectPlugin.api("me/?fields=id,email", ["public_profile"],
        function (result) {
        },
        function (error) {
            alert("Failed: " + error);
        }
    );
}

facebookConnectPlugin.login(["public_profile"],
    fbLoginSuccess,
    function (error) {
        alert(JSON.stringify(error));
    }
);

6) developers.facebook.com の私のサイトに、Android アプリを追加しました。Google Play パッケージ名は、config.xml の widget 要素の「id」と同じです。クラス名には、id とまったく同じものを指定しましたが、「.MainActivity」が追加されています。上記の手順 2 で生成されたキー ハッシュを [キー ハッシュ] フィールドに挿入しました。シングルサインオンをオンにしました。それが正しいかどうかはわかりません。

私はこれを理解するのに何日も費やしましたが、運がありませんでした。問題がハッシュ、コルドバ、またはその他の Facebook のアクセス許可にあるのかどうかはわかりません。前述のとおり、iOS では問題なく動作します。問題があるのはAndroidだけです。

どんな助けでも大歓迎です。

4

1 に答える 1