2011-09-02 4 views
1

오늘 내 거의 완성 된 Facebook 응용 프로그램이 작동을 멈췄습니다. 사용자의 게임 내 닉 및 유사한 내용을 설정하기 위해 앱에 '등록'양식이 있습니다.Facebook 응용 프로그램에서 양식 보내기

문제는 양식을 제출할 때 Facebook PHP SDK가 $facebook->getUser()NULL이라고 주장하는 것입니다. 내 코드는 사용자를 $facebook->getLoginUrl(array("scope" => ..., etcetera))으로 리디렉션하여 이에 대응합니다. 그런 다음 사용자는 Facebook에 의해 내 응용 프로그램으로 리디렉션됩니다. 물론 폼에 게시 된 데이터가 없습니다.

Facebook PHP SDK가 마술을 할 수 있도록 양식에 숨겨진 요소를 전달해야한다고 가정합니다. Facebook 앱에서 양식을 올바르게 사용하는 방법을 알려주십시오.

+0

어떤 PHP SDK 버전을 사용하고 있습니까? –

+0

마지막으로 GitHub에서. –

답변

1

오케이, 마침내 문제가 내 코드에 있다는 것을 알았습니다. 세션 처리에 버그가있었습니다. bashing, Facebook에 대한 죄송합니다 :)

0

이 방법이 효과가 있습니까?

$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> 
+0

나는 놀랍다. 그렇다. 내 코드를이 작업 예제에 더 가깝게 굽히고 응용 프로그램이 작동하는지 확인하려고합니다. –

+0

원래 응용 프로그램이 여전히 작동하지 않습니다 ... Wireshark에서 사용자와 서버 간의 통신을 찾았습니다. POST 요청에서 내가하고있는 잔학 행위가 발생합니다. 다른 것들은 거의 비슷합니다. . 작업 캡처와 캡처 실패의 차이점은 작업중인 경우 처음 두 요청은/및 /? state = ... & code = ...로 가고 세 번째 것은 /index.php로 이동하고 실패한 경우 하나, 마지막 요청은/a? b = c로 이동합니다.이 URL은 내가 사용하는 프레임 워크가 생성하는 멋진 URL입니다. 이게 SDK가 로그인 URL로 다시 돌아 가게 할 가능성이 있습니까? –

+0

모르겠다, 어떤 프레임 워크? – alexl

관련 문제