2013-08-29 2 views
0

나는 Facebook API의 마지막 업데이트에서 app_secret로 서명 된 액세스 토큰 인 appsecret_proof을 제공 할 가능성이 있음을 알고 있습니다. 난 항상 얻을 :나는 항상 : "유효하지 않은 appsecret_proof 제공"

이제 문제는 내가 내 페이스 북의 응용 프로그램에 설정된 옵션 선명하게 촬상이 (Require AppSecret Proof for Server API calls \ 비활성화 가능),이다

Invalid appsecret_proof provided in the API argument

가 나는 것을 발견 PHP가 페이스 북의 마지막 버전 -sdk 항상 appsecret_proof

... 
if (isset($params['access_token'])) { 
    $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']); 
} 
... 
protected function getAppSecretProof($access_token) { 
    return hash_hmac('sha256', $access_token, $this->getAppSecret()); 
} 
... 

내 응용 프로그램의 체크를 해제하고, 매개 변수를 삽입 라인을 언급하면, 모든 것이 그렇지 않으면 나는 어를 얻을 잘 작동 매개 변수 사이에 삽입 너.

지금 어디서 잘못 되었나요? 나는 트리플 체크 $access_token, $this->getAppSecret() 및 doc, 모두 맞는 것 같습니다. 실마리가 있습니까?

+1

잘못된 응용 프로그램 ID, 잘못된 응용 프로그램 비밀을 사용하거나 잘못된 응용 프로그램에서 액세스 토큰을 사용하려고합니까? – Igy

+0

예 .. AccessToken은 정확했지만 이전 응용 프로그램의 오래된 토큰이었습니다. 감사합니다! 나는이 질문을 내일 쓸모 없기 때문에 삭제할 것이다. 다시 감사합니다! –

답변

0

나는 모든 것에 권한을 부여함으로써 마침내 오류를 없앨 수있었습니다.

+1

자세한 내용을 제공해 주시겠습니까? 이 대답은 다소 모호하며 @SalvatoreD라는 질문을 다루지 않는 것 같습니다. 묻고 있었다. –

+0

확고한 답이 필요합니다. – Prashant

+0

조금 너무 애매한 :) 정말 도움이되지 않습니다. – odino

0

문제의 복잡한 해결 방법을 쉽게 이해할 수 있도록 노력하십시오. 이 특정한 경우에, 내가 먼저 할 것이 무엇 더블 (트리플) 내 확인 : 앱-ID앱 - 비밀, API-버전 (앱 대시 보드에서 제공하는 모든 3) 액세스 토큰 (도구 & 지원> 그래프 API 탐색기).

누락 된 부분은 액세스 토큰입니다. 그래프 API 탐색기에서 오른쪽에있는 드롭 다운을 찾아 "Graph API Explorer"기본값 대신 등록 된 응용 프로그램 이름을 선택하십시오.

그래서 결국 당신의 코드는이 (그래프 V2.4)과 같아야합니다

$fb = new Facebook\Facebook([ 
    'app_id' => $app_id, 
    'app_secret' => $app_secret, 
    'default_graph_version' => $api_version 
]); 
관련 문제