Php 在Facebook应用程序中发送表单

Php 在Facebook应用程序中发送表单,php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,今天,我几乎完成的Facebook应用程序停止工作。我在应用程序中有一些“注册”表单,用于设置用户的游戏内尼克和类似的东西 问题在于,在提交表单时,Facebook PHP SDK坚持认为$Facebook->getUser()为NULL。我的代码对此作出反应,将用户重定向到$facebook->getLoginUrl(数组(“scope”=>…,等等))。然后,用户被Facebook重定向回我的应用程序,但是,当然,没有发布到表单中的数据 我想我应该在表单中传递某种隐藏元素,这样Faceboo

今天,我几乎完成的Facebook应用程序停止工作。我在应用程序中有一些“注册”表单,用于设置用户的游戏内尼克和类似的东西

问题在于,在提交表单时,Facebook PHP SDK坚持认为
$Facebook->getUser()
NULL
。我的代码对此作出反应,将用户重定向到
$facebook->getLoginUrl(数组(“scope”=>…,等等))
。然后,用户被Facebook重定向回我的应用程序,但是,当然,没有发布到表单中的数据

我想我应该在表单中传递某种隐藏元素,这样Facebook PHP SDK就可以发挥它的魔力了。你能告诉我如何在Facebook应用程序中正确使用表单吗?

这有用吗

$facebook = new Facebook(array(
'appId'  => ... ,
'secret' => ... ,
));
$user = $facebook->getUser();
if (!$user) {
$loginUrl = $facebook->getLoginUrl();
// then redirect to the $loginurl
exit();
}
 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:fb="http://www.facebook.com/2008/fbml">
<head>

</head>
<body>
<?php
if (!isset($_POST['my_guess'])) {
?>
pick a number between 1 and 10
<form action="index.php" method="post">
<input type="text" name="my_guess">
<input type="submit">
</form>
<?php
}  else {
print $facebook->getUser()." you picked ".$_POST['my_guess'];
}
?>
</body>
</html>
$facebook=新的facebook(数组)(
“appId”=>,
“秘密”=>,
));
$user=$facebook->getUser();
如果(!$user){
$loginUrl=$facebook->getLoginUrl();
//然后重定向到$loginurl
退出();
}
?>
选择一个介于1和10之间的数字
这行吗

$facebook = new Facebook(array(
'appId'  => ... ,
'secret' => ... ,
));
$user = $facebook->getUser();
if (!$user) {
$loginUrl = $facebook->getLoginUrl();
// then redirect to the $loginurl
exit();
}
 ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:fb="http://www.facebook.com/2008/fbml">
<head>

</head>
<body>
<?php
if (!isset($_POST['my_guess'])) {
?>
pick a number between 1 and 10
<form action="index.php" method="post">
<input type="text" name="my_guess">
<input type="submit">
</form>
<?php
}  else {
print $facebook->getUser()." you picked ".$_POST['my_guess'];
}
?>
</body>
</html>
$facebook=新的facebook(数组)(
“appId”=>,
“秘密”=>,
));
$user=$facebook->getUser();
如果(!$user){
$loginUrl=$facebook->getLoginUrl();
//然后重定向到$loginurl
退出();
}
?>
选择一个介于1和10之间的数字

好的,所以我最终发现问题出在我的代码中-我在会话处理中有一个bug。很抱歉,Facebook:)

好的,所以我最终发现问题出在我的代码中-我在会话处理中有一个bug。很抱歉,Facebook:)

您使用的是什么版本的PHP SDK?您使用的是什么版本的PHP SDK?我很惊讶地说,是的,确实如此。我想我要试着让我的代码更接近这个工作示例,看看我是否能让我的应用程序工作。原来的应用程序仍然不能工作。。。我在Wireshark中查找了用户和服务器之间的通信,似乎我正在与之斗争的暴行发生在POST请求中——其他请求看起来几乎相同。正常捕获和失败捕获之间的区别在于,在正常捕获中,前两个请求转到/和/?state=…&code=。。。第三个指向/index.php,在失败的一个中,最后一个请求指向/a?b=c,这是我使用的框架生成的一个很酷的URL。这是否可能是SDK将我引导回登录URL的原因?我很惊讶地说,是的,确实如此。我想我要试着让我的代码更接近这个工作示例,看看我是否能让我的应用程序工作。原来的应用程序仍然不能工作。。。我在Wireshark中查找了用户和服务器之间的通信,似乎我正在与之斗争的暴行发生在POST请求中——其他请求看起来几乎相同。正常捕获和失败捕获之间的区别在于,在正常捕获中,前两个请求转到/和/?state=…&code=。。。第三个指向/index.php,在失败的一个中,最后一个请求指向/a?b=c,这是我使用的框架生成的一个很酷的URL。这是否可能是SDK将我引导回登录URL的原因?