我在弄清楚如何为移动Web应用程序实现Facebook Oauth时遇到了很多麻烦.我想在他们的开发者网站上使用以下代码示例中"display"参数中指示的"touch"界面.有没有人有使用此代码的经验?我似乎无法在Javascript中使用它.是否有其他方法可以让我的用户看到触摸启用登录界面?
是的,有一种方法可以让您的移动浏览器用户看到启用触摸的登录界面.您需要使用oauth
此处所述的方法,而不是使用FB SDK :
http://developers.facebook.com/docs/authentication/
我正在使用"服务器端流程"来完成你正在尝试做的事情,它看起来效果很好.
首先,您重定向到FB oauth页面,将您的应用程序ID和目标网页作为回调传递(注意:landing_page必须格式化为目录,不能是文档!).display=touch
如果您需要,可以传入和选择可用的应用数据state
.
document.location='http://www.facebook.com/dialog/oauth?client_id=' + appid +
'&redirect_uri=http://' + landing_page + '/&display=touch&state=' +
optional_app_data;
Run Code Online (Sandbox Code Playgroud)
用户成功登录后,您的用户将被重定向到landing_page,其GET
变量为code
.如果您需要查询Open Graph API以获取此类用户信息(在PHP中),您可以使用它code
来获取access_token
:
$response = file_get_contents("https://graph.facebook.com/oauth/access_token?"
."client_id=FACEBOOK_ID."&redirect_uri=http://". landing_page
."/oauth/&client_secret=".FB_APPSECRET."&code=$authcode");
parse_str($response, $params);
$graph_url = "https://graph.facebook.com/me?access_token=".$params['access_token'];
Run Code Online (Sandbox Code Playgroud)