ユーザーがFacebookで認証する必要があるレスポンシブWebサイトに取り組んでいます。Facebook JS SDK と、ログインおよびログイン成功のコールバックをセットアップしました。私が持っているセットアップはデスクトップでは問題なく動作しますが、iPhone では (iPad でも動作するようです!) まだ解決していない問題があります。
[ログイン] ボタンをタップすると、ユーザーにログインを求める新しいタブが表示されます。ユーザーが資格情報を入力すると、タブは閉じられますが、Safari はマイ ページを再度開きません。代わりに、Safari は「タブ選択」画面に表示され、自分のページが強調表示されます。ユーザーは、タブをタップしてマイページを明示的に再度開く必要があります。タブをタップすると、 authResponseChange が一貫して起動されないようです。
iPhone の Safari で自分のページ以外のタブが開いていないことを確認すると、(Safari アプリの設計で予想されるように) 自動的にそのページに戻り、サイトが正しく機能することに注意してください。
<div id="fb-root"></div>
<script>
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_US/all.js', function() {
FB.init({
appId : 'xxx',
xfbml : true,
status : true,
cookie : true
});
});
});
$("#login_button").bind("vclick", function() {
// Require explicit login
FB.Event.subscribe("auth.authResponseChange", function(response) {
if (response.status === "connected") {
// Perform API calls and display more of the page ...
// $.get("https://graph.facebook.com/me/friends?access_token=")
// FB.api("/me/friends", function(data) {});
}
});
FB.login(function(response) {}, {scope: 'email,friends_birthday,friends_hometown'});
});
</script>