... 여기
당신이 $이 조건의 내 디버그 에코의 결과이다 관하여 sig는 $ expected_sig와 비교됩니다.
SIG : ꢖbuf^4 ֣ GP
예상 SIG {.nwW : RB C8 $ % F
어떤 이유로 든 시그너처가 예상되는 인코딩 된 시그너처와 일치하지 않습니다.
내가 궁금해하던 ... 여기서 무엇이 잘못 될 수 있나?
내 설정에서 올바르게 설정하더라도 적절한 "비밀"을 전달하지 않을 수 있습니까? 내가
$facebook->getAppID();
또는
$facebook->getAppSecret();
아무것도 사용
require_once("facebook.php");
$config = array();
$config[‘appId’] = $APP_ID;
$config[‘secret’] = $APP_SECRET;
$config[‘fileUpload’] = false; // optional
$facebook = new Facebook($config);
이 밝혀 바와 같이, 반환됩니다! 내 getSignedRequestCookieName() 함수는
이 왜
$expected_sig = hash_hmac('sha256', $payload,
$facebook->getAppSecret(), $raw = true);
반환 잘못된 해시 "fbsr_"만 반환하는 이유
이입니다!
왜?
간단한 답 : 사용 잘못된 형식 설정 배열 ...
"$의 설정 [ 'APPID를'] = $ APP_ID;"... 주위에 "APPID"를 따옴표를 확인할 수 있습니다. 이것은 페이스 북 개발자 문서의 docs/examples에서 직접 복사/붙여 넣기했습니다.
표준 따옴표
$config = array();
$config["appId"] = $APP_ID;
$config["secret"] = $APP_SECRET;
$config["fileUpload"] = false; // optional
와 그 따옴표를 교체 ...
SIG : 여기 결과입니다 r0g %의 W (B^DDV
예상 SIG : r0g % W (B^DDV
그들은 지금 일치 ...
길고도 짧은 이야기 ... 당신이 signed_request 토큰을 얻고 있는지 확인하기 위해은 phpinfo() 할 .. . 당신이 그것을 확신하고 있다면 (또는 "$ 요청 [fbsr ######]"var) ... 인코딩 된 서명 된 요청을 받는다는 것을 확신한다면 ... 해시가 일치하지 않는 유일한 이유는 그곳의 올바른 비밀.