我正在使用Facebook OAuth界面,但无法立即获取模式参数。您是否知道如何使用FB或任何其他网址来使用?!
(我不/不能使用FB JS库。)
答案 0 :(得分:2)
让用户使用Facebook帐户登录您网站的一个好方法是使用Facebook PHP SDK(see on github)。所以你会有类似的东西:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$user = $facebook->getUser();
如果用户已登录,则$user
是他的Facebook ID。然后,您必须通过进行API调用来检查您是否拥有有效的访问令牌:
如果它没有引发任何异常,那么您有一个有效的访问令牌
如果是,则必须重新验证用户。
你走了:
if ($user) {
try {
$facebook->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}
然后,您需要显示登录或注销链接:
<?php if ($user): ?>
<a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a>
<?php else: ?>
<a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a>
<?php endif ?>
当用户登录并且您拥有有效的访问令牌时,您可以进行API调用以从Facebook获取数据:
$user_profile = $facebook->api('/me');
您可能需要查看记录良好的example page of the Facebook PHP SDK。
希望有所帮助。
答案 1 :(得分:2)
我从FB php-sdk中提取了以下网址(Quentin提醒我):
https://www.facebook.com/extern/login_status.php
?api_key=<your app-id or api-key>
&no_user=<callback url>
&no_session=<callback url>
&ok_session=<callback url>
&session_version=3
当您将用户重定向到上面的网址(或将其作为iframe或弹出窗口打开)时,Facebook会默默地/立即将用户/浏览器重定向到:
no_user
。no_session
当用户已登录但尚未授权您的应用时。ok_session
。其他参数(用户标识和所需令牌)将由FB附加到此URL,您需要验证。例如:
https://www.facebook.com/extern/login_status.php
?api_key=123456789012345
&no_user=http://example.com/signin/fb/no_user
&no_session=http://example.com/signin/fb/no_session
&ok_session=http://example.com/signin/fb/ok_session
&session_version=3
将它们放在一行中,没有空格,如果需要,不要忘记编码网址。
请参阅OpenID立即模式以找出其有用的原因。
答案 2 :(得分:0)
如果您正在开发基于Java的应用程序,那么您可以使用SoicalAuth库。