PHP Facebook会话管理

PHP Facebook会话管理,php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,我正在用PHP开发一个facebook应用程序。 我可以使用下面的代码登录 <?php $app_id = "XXXXXXXXXXXXXXXXX"; $canvas_page = "http://apps.facebook.com/sandysfirst/"; $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" .urlencode($

我正在用PHP开发一个facebook应用程序。 我可以使用下面的代码登录

 <?php

$app_id = "XXXXXXXXXXXXXXXXX";
$canvas_page = "http://apps.facebook.com/sandysfirst/";
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
       . $app_id . "&redirect_uri=" .urlencode($canvas_page)."&scope="."publish_stream,read_stream,offline_access";
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["user_id"])) {
       echo("<script> top.location.href='" . $auth_url . "'</script>");
} else {

}?>

<?php
  include_once "src/facebook.php";
  $app_id = 'XXXXXXXXXXXXXXXXXXX';
  $application_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  $facebook = new Facebook(array(
 'appId'  => $app_id,
 'fileUpload' =>true,
 'secret' => $application_secret,
 'cookie' => true, // enable optional cookie support
));
       if ($facebook->getSession()) {
       $user = $facebook->getUser();
       $uid = $facebook->getUser();
              $fbme  =   $facebook->api('/me');
              echo "<br/><br/><br/><br/> Welcome ".$fbme['name'];
         }
       echo "<html>

我不知道facebook api,但是从一些基本的php中可以使用一些方法:

1-将uid作为隐藏字段添加到表单中

<input type="hidden" name="uid" value="$uid">

2-将其添加到操作url

<form action="submit.php?uid=$uid">


然而,更好的方法是使用facebook api,与您在此处列出的方法基本相同(从
include_once“src/facebook.php”
),每次检索uid,否则您会让它受到安全黑客的攻击(很容易以表单形式传递假uid)。

谢谢您的帮助。我的表单操作调用一个javascript函数,其中基于计算调用不同的页面。我可以输入href=“1.php?uid=$uid”,如您上面所述。但是我如何在下一页上使用uid来标记一张照片并将其上传到用户配置文件中。我需要像上面的代码一样再次创建facebook的数组吗?否则uid本身就足够了。请帮助。如果你计划标记照片/上传照片/添加留言等,那么你每次都必须再次使用facebook代码。uid将不足。代替每次复制/粘贴facebook代码,您可以将其放在单独的文件中,并使用
include('fb.php')
每次调用它。按原样使用它在每个页面上获取uid,然后从那里运行facebook照片命令(您需要在api文档或教程中查找如何进行照片标记和上载)。好的,我可以进入下一页,根据您的建议获取用户名(每次使用facebook代码).你能帮我在用户墙上贴上照片标签和发布吗?。我没有任何访问令牌保存在任何地方,您可以在我的代码中看到。这样行吗?