php - 如何使用 OAuth 对话框在移动 Web 应用程序上使用 facebook 连接

标签 php facebook mobile connect

现在我正在使用 facebook connect 开发移动网络应用程序,但我在使用 OAuth 对话框时遇到问题。我使用以下 facebook 文档作为引用:

http://developers.facebook.com/docs/guides/mobile/#web

我选择使用 OAuth 对话框而不是登录按钮,因为移动浏览器不识别 FBML(我使用黑莓浏览器进行测试)。 OAuth 对话框还允许我在范围参数内添加权限列表。但问题是,当我使用 OAuth 对话框登录时,参数 $me 未被识别,因此登录按钮仍然出现并且不会更改为注销按钮。 这是我的代码示例:

$facebook = new Facebook(array(
  'appId'  => 'xxxxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
    $accessToken = $facebook->getAccessToken();
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}
if ($me) {
  echo "<img src=\"images/logoutFB.gif\">";
} else {
  echo "<a href=\"http://www.facebook.com/dialog/oauth?scope=user_about_me,user_activities,user_birthday,user_education_history,user_events,user_groups,user_hometown,user_interests,user_likes&client_id=".$facebook->getAppId()."&redirect_uri=".urlencode("http://MYURL.COM")."&display=wap\"><img src=\"images/loginFB.gif\"></a>";
}

我用OAuth Dialog连接facebook是不是不能用$me这个参数? 那么,如果我使用 OAuth 对话框,我怎么知道我是否已经登录到 facebook? 如果你们有解决方案,请帮忙。

最佳答案

看起来您需要使用 the updated PHP-SDK

getSession() 已替换为 getUser():

require './src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => '135669679827333',
  'secret' => 'xxxxxxxxxxxxxxxx',
));
$user = $facebook->getUser();
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {

    $user = null;
  }
}

关于php - 如何使用 OAuth 对话框在移动 Web 应用程序上使用 facebook 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495368/

相关文章:

facebook - 如何在 Facebook Messenger Bot 按钮中发送电话链接?

android - 将 WebGL 应用程序部署为原生 iOS 或 Android 应用程序?

javascript - GAPI 客户端 404 错误

api - 3G 设备中的快速休眠

php - Facebook Oauth 2.0 使用 PHP 3.1.1 和 Javascript SDK 登录

javascript - 如何在匿名函数中应用node.js REPL?

php - 如何将 `select a category` 文本添加到选项下拉列表中?

php - vtiger与mysql连接时出现意外错误

php - 获取DIV的内容并保存到文件,jQuery/JS或服务器端

php - 获取MySQL不同表中的对应列