古いバージョンのFBAPIを使用する登録フォームがあります。
現在のバージョンに更新しようとしていますが、FBからの応答の処理に問題があります。
FBログインボタンをクリックしてアクセス許可(email、publish_stream)を付与した後、ユーザーがアクセスを許可した(すでに登録済みのユーザーとしてログインしただけではない)ことを知る方法が見つからず、登録の次のページに進む必要があります形。
許可要求が成功した後の応答は、ログインが成功した場合と同じです。
{
authResponse:
{
accessToken: AAAFEIew...URYo,
userID: 100003908595992,
expiresIn: 6014,
signedRequest: uhTqZodDn0QUoWAUBuYEKmlaM8zViO0r_fnKONaC4v8.eyJhbGdvcml...k5MiJ9,
},
status: connected
}
ログインがすでに登録されているユーザーによるものなのか、新規登録によるものなのかを知るにはどうすればよいですか?
javascriptSDKを使用しています。
コード:
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
<div id="fb-root" style="padding: 0px;"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'API_KEY',
status : true,
channelUrl : '//'+window.location.hostname+'/channel.php',
cookie : true,
xfbml : true,
oauth : true
});
// listen for and handle auth.statusChange events
FB.Event.subscribe('auth.statusChange', function(response) {
if (response.authResponse) {
// user has auth'd your app and is logged into Facebook
alert('logged in!');
}
else
{
// user has not auth'd your app, or is not logged into Facebook
alert('not logged in!');
}
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));