Facebookのログインについて

515 views
Skip to first unread message

Satou

unread,
Oct 25, 2013, 1:47:22 AM10/25/13
to android-g...@googlegroups.com
こんにちは。Satouです。

現在アプリでFacebookSDKを使ってFacebookにテキストを投稿する実装を行っています。

実際にプログラムを作成し、実行してみたところ、認証に失敗してしまいます。
「テストアプリが公開プロフィール、友達リストにアクセスする許可を求めています。」のダイアログが出る→OKを押す→Facebook認証に失敗しましたのトーストがでる。
以下のソースコードのsession.getState()で、値がLOSED_LOGIN_FAILEDで返ってくるのが確認でき、なぜCLOSED_LOGIN_FAILEDが返ってくるのかがわかりませんでした。
CLOSED_LOGIN_FAILEDについて調べてもどのような意味なのか解らず、直しようがありません。
どなたかわかる方はいらっしゃるでしょうか?

以下のサイトを参考にして作成しました。

以下はソースコードです。session.getState()でCLOSED_LOGIN_FAILEDが返ってきます。
@Override
    protected void onResume() {
        super.onResume();
        Session session = Session.getActiveSession();
        Log.d(TAG,"onResume:" + "session state is " + session.getState());
 
        if (session.getState().equals(SessionState.CLOSED_LOGIN_FAILED) || session.getState().equals(SessionState.CLOSED)) {
            Toast.makeText(this, "Facebook認証に失敗しました。", Toast.LENGTH_LONG).show();
            finish();
        }
    }


ちなみに
・FacebookDevelopersでのアプリ登録の際、ネイティブAndroidアプリの欄の「クラスの名前」は、「SplashActivity」で登録しており、実際の「~友達リストにアクセスする許可を求めています。」などの
投稿画面は「FacebookActivity」のクラスで行っています。ためしに参考にしたサイトをそのまま作り、同様の状態にしてみたのですが問題なくログインできました。

・FacebookDevelopersでのアプリ登録の際、ネイティブAndroidアプリの欄の「Facebook login」では「有効にする」「無効にする」両方試してみましたが参考にしたサイトでは問題なくログインできました。
今回開発しているアプリでは「有効にする」で設定しています。

→上記2つの項目「クラスの名前」、「Facebook login」は何の意味があるのかよくわかりません。よろしければそちらも教えて頂けると嬉しいです。

長くなってしまい申し訳ありません。
よろしくお願い致します。

hashimoto

unread,
Oct 28, 2013, 8:52:53 AM10/28/13
to android-g...@googlegroups.com
こんばんは、hashimotoといいます。

私も最近同じ事象に悩んでいまして、結論としては、
ハッシュキーをデバッグ用のみしかFacebook developersで登録していないのではないでしょうか?

もし、端末内のFacebookアプリを削除して、WebブラウザベースでLoginして正常に処理が進むなら、そうだと思います。
私はそうでした。

ここ
http://masterka.seesaa.net/article/228540106.html
等のやり方で、本番用のハッシュキーを取得するか、
ここ
https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/jp/
の4の中のトラブルシューティングの方法でLogにだして、そこから本番用のハッシュキーを取得して登録すれば解消されないでしょうか?


ちなみに、「Facebook login」は、これをチェックしていると、
自分のアプリからリンクのシェアを投稿した時に、
Facebook アプリでそのシェアの記事を見てタッチすると、リンク先ではなく、自分のアプリを立ち上げようとします。



2013年10月25日 14:47 Satou <satou.y...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

Satou

unread,
Oct 28, 2013, 8:54:47 PM10/28/13
to android-g...@googlegroups.com
Satouです。

hashimoto様、ありがとうございます。
ハッシュキーなのですが一つしか登録してなかったと思います。

WebブラウザベースでLoginしてみたのですが
「This app is in sandbox mode. Edit the app configuration at http://developers.facebook.com/ apps to make the app publicly visible.」
でログインができませんでした。こちらはsandbox mode が有効になっているのを直せば良いと思っています。

ただ、本番用のハッシュキー取得なのですが
のサイトで取得する場合、
keytool -exportcert -alias apkを作ったエイリアス -keystore apkを作ったキーストアのパス
| openssl sha1 -binary
| openssl base64
の「apkを作ったエイリアス」とは具体的に何を入れればよろしいのでしょうか?
例ってありますでしょうか?

すみませんがよろしくお願いします。

2013年10月28日月曜日 21時52分53秒 UTC+9 d.hashimoto:
このグループから退会し、メールの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com にメールを送信します。
このグループに投稿するには、android-group-ja...@googlegroups.com にメールを送信してください。

hashimoto

unread,
Oct 28, 2013, 11:40:14 PM10/28/13
to android-g...@googlegroups.com
apkを作ったエイリアス」とは、キーストアのエイリアスの事と思われ、
キーストアのエイリアスについては、
や、「キーストア 作り方」で検索したページを見れば分かるかと思います。

ただ、本番用のキーストアファイルを使ってapkファイルを出力してテストしている、という状態でなければ、
今回の件とは別の事象かも分かりません。


また、ハッシュキーに関してですが、私の場合、上記のコマンドで得られたハッシュキーでは正常に動作せず、
https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/jp/
の4の中のトラブルシューティングの方法でLogに出したハッシュキーをコピペして使うと、正常に動作しました為、
https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/jp/
の4の中のトラブルシューティングの方法をおすすめします。



2013年10月29日 9:54 Satou <satou.y...@gmail.com>:
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。

Satou

unread,
Oct 29, 2013, 2:19:13 AM10/29/13
to android-g...@googlegroups.com
Satouです。

ご回答ありがとうございます。
無事認証できるようになりました。

本番用のハッシュキーの登録と
sandbox modeの設定を無効にしたところ
認証できるようになりました。

最終的に本番用のハッシュキーを登録していなかったことが原因だったと思います。

本当に助かりました。ありがとうございます。


2013年10月29日火曜日 12時40分14秒 UTC+9 d.hashimoto:
2013年10月28日月曜日 21時52分53秒 UTC+9 d.hashimoto:
このグループに投稿するには、android-group-jap...@googlegroups.com にメールを送信してください。

http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages