我一直在建立一个社交礼品平台,并且已经有一个应用程序运行了几个月了:http://egift.me/promos/venue/facebookconnect
应用程序有一个简单的用户流程。单击登录/连接Facebook按钮,登录和/或授权应用程序,然后您将被重定向到“谢谢/确认”样式页面。
如果我在标准浏览器上执行此操作,我没有任何问题。如果我在移动设备上逐步完成此操作,我最终会得到可爱的“您找不到的页面”页面。
我没有配置移动网址网址,我只是使用Facebook登录网站。即使我尝试添加移动网址(它是相同的基本URL,我使用View Switching来提供桌面与移动优化视图),我也会遇到同样的问题。
任何人都知道发生了什么事吗?我可以提供任何其他信息吗?
[UPDATE]
这有效(请务必更改范围):
//instead of onClick could just as easily use something like jQuery event binding
<button onClick="loginUser();">Login</button>
<script type="text/javascript">
function loginUser() {
FB.login(function (response) { }, { scope: 'YOUR_SCOPE_HERE' });
}
FB.getLoginStatus(function (response) {
FB.Event.subscribe('auth.authResponseChange', handleResponse);
});
handleResponse = function (response) {
document.body.className = response.authResponse ? 'connected' : 'not_connected';
if (response.status === 'connected') {
// the user is logged in and has authenticated your
// app, and response.authResponse supplies
// the user's ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
} else if (response.status === 'not_authorized') {
// the user is logged in to FB, but has not yet authenticated your app
} else {
// the user is not logged in to FB
}
};
</script>
答案 0 :(得分:1)
对于移动网络应用,我建议您通过SDK本身而不是使用登录按钮来使用FB.login。如果没有别的,它可以让您对用户流程进行更大程度的控制。经验。
规范的“最简单的社交应用”片段是:
FB.login(function(response) {
if (response.authResponse) {
console.log('Fetching user info');
FB.api('/me', function(response) {
console.log('Hello ' + response.name + '!');
});
} else {
console.log('User cancelled login or did not fully authorize');
}
});
此外,您还要为插件添加JS SDK,因此没有负载开销。有关FB.login的更多详细信息,请访问:https://developers.facebook.com/docs/reference/javascript/FB.login/