如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
How to save the response data return by Facebook in Java class using Spring MVC
我正在尝试保存Facebook响应返回的用户数据。我使用的是FacebookJavascript。响应是JSon格式的,我想先解析它,然后用java将它保存到我的数据库中。
<script>
// This is called with the results from from FB.getLoginStatus().
function statusChangeCallback(response) {
console.log('statusChangeCallback');
console.log(response);
// The response object is returned with a status field that lets the
// app know the current login status of the person.
// Full docs on the response object can be found in the documentation
// for FB.getLoginStatus().
if (response.status === 'connected') {
// Logged into your app and Facebook.
/* var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.log("User id is" + uid);
console.log(accessToken); */
document.getElementById('accesstoken').value=response.authResponse.accessToken;
console.log(response.authResponse.accessToken);
testAPI();
} else if (response.status === 'not_authorized') {
// The person is logged into Facebook, but not your app.
document.getElementById('status').innerHTML = 'Please log ' +
'into this app.';
} else {
// The person is not logged into Facebook, so we're not sure if
// they are logged into this app or not.
document.getElementById('status').innerHTML = 'Please log ' +
'into Facebook.';
}
}
// This function is called when someone finishes with the Login
// Button. See the onlogin handler attached to it in the sample
// code below.
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxxxxxxxxx',
cookie : true, // enable cookies to allow the server to access
// the session
xfbml : true, // parse social plugins on this page
version : 'v2.2' // use version 2.2
});
// Now that we've initialized the JavaScript SDK, we call
// FB.getLoginStatus(). This function gets the state of the
// person visiting this page and can return one of three states to
// the callback you provide. They can be:
//
// 1. Logged into your app ('connected')
// 2. Logged into Facebook, but not your app ('not_authorized')
// 3. Not logged into Facebook and can't tell if they are logged into
// your app or not.
//
// These three cases are handled in the callback function.
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
};
// Load the SDK asynchronously
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
// Here we run a very simple test of the Graph API after login is
// successful. See statusChangeCallback() for when this call is made.
function testAPI() {
// window.location="http://localhost:8080/SpringMvcHibernateJavaBased/list";
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
console.log(response);
document.getElementById('status').innerHTML =
'Thanks for logging in, ' + response.name + '!';
document.getElementById('usernamefb').value=response.name;
document.getElementById('userId').value=response.id;
document.getElementById('emailfb').value=response.email;
});
}
function checkLogoutState(){
FB.logout(function(response) {
FB.Auth.setAuthResponse(null, 'unknown');
});
};
function checkData()
{
return $.ajax({
})
}
</script>
我使用的是SpringMVC方法,完全基于JAVA,不使用任何xml文件。我搜索了很多,但没有得到任何解决方案
在"if(response.status==='connected'){}"块中,您需要调用Facebook的另一个API,通过传递用户id和令牌来获取用户的详细信息,在收到数据后,您可以通过Ajax调用自己的控制器,并根据需要保存到DB中。
另一种解决方案可以是,您可以使用"http://projects.spring.io/spring-social/"在服务器端本身。
Krish
相关文章:
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何在数据表中设置从Ajax响应选中的复选框
- 自定义验证并格式化从数据数据库返回的响应-BEGINNER
- 访问令牌和响应数据
- angular.js我如何设置数据什么是响应值
- Laravel数据表无效的JSON响应
- GCM Chrome:空数据响应
- AJAX 数据响应 - 如何解析 html
- 如何重新格式化来自 URL 的数据响应
- 如何从 ajax 请求获取数据响应
- 在数据响应中选择 #id.html
- Ajax数据响应数据未发出警报
- 使HTML表格's数据响应
- 用Javascript处理来自JSF Ajax的数据响应
- JQuery, HTML5上传器-获取上传后的数据响应
- 如何解析特定的json数据响应
- AngularJS美元范围.Push不从$http数据响应更新视图
- 如何根据本地存储的另一个数据响应延迟XMLHttpRequest
- Jquery ajax修改数据响应
- 如何将Ajax数据响应转换为字符串