2012-08-28 1 views
2

작동하지 :교환 단명 액세스 토큰 수명이 긴 나는 링 수명에 대한 단명 한 사용자 액세스 토큰을 교환하기 위해 노력하고 있지만에게 (all.js에서) 오류 얻고있다

을 ReferenceError가 : 잘못된 할당 왼쪽 편은

... TZCOZCkuZBxZAzVUSokiOJbXZAHhESJvuA97qXTpVbVj3P7AZDZD &이 만료 = 512,326

response.error.message : 알 수없는 오류를

코드 :

,
window.fbAsyncInit = function() { 
      FB.init({ 
       appId: 'xxx', // App ID 
       status: true, // check login status 
       cookie: true, // enable cookies to allow the server to access the session 
       xfbml: true, // parse XFBML 
       oauth: true 
      }); 

      FB.login(function (response) { 
        if (response) { 

        var accessToken = response.authResponse.accessToken; 

        FB.getLoginStatus(function(response) { 
         if (response.status === 'connected') { 

          var accessToken = response.authResponse.accessToken; 

          var OauthParams = {}; 
          OauthParams['client_id'] = 'xxx'; 
          OauthParams['client_secret'] = 'xxx'; 
          OauthParams['grant_type'] = 'fb_exchange_token'; 
          OauthParams['fb_exchange_token'] = accessToken; 
          OauthParams['response_type'] = 'token'; 
          console.log(accessToken); 

          FB.api('/oauth/access_token', 'post', OauthParams, function(response) { 
           if (!response || response.error) { 
            console.log(response.error.message); 
           } 
           else { 
            console.log(response.accesstoken); 
           } 
          });   
         } 
        }); 
        }; 

      }, { scope: 'manage_pages' }); 

     }; 


} 

(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 

누구나 아이디어가 있습니까? documentation 당신은 아마 문제가 당신이 POST 요청을 것을 사용하고있다

https://graph.facebook.com/oauth/access_token? 
    client_id=APP_ID& 
    client_secret=APP_SECRET& 
    grant_type=fb_exchange_token& 
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

GET 요청을 전송해야하지만 나는하지 않는 시나리오 4에 따라

감사합니다, /M

답변

1

확실한

추신 클라이언트 측에서 APP_SECRET을 사용하지 않는 것이 좋습니다

+0

GET 요청으로 인해 FB 오류 메시지와 방화범 오류가 변경되지 않았습니다. 이 클라이언트 코드는 테스트 목적으로 만 사용됩니다. 물론 나중에 APP Secret을 공개하지 않겠습니다. –

+1

즉, 나중에는 클라이언트 측 _client-side_를 사용하지 않을 것입니다. 그렇다면 사용되지 않는 것을 "테스트"하는 이유는 무엇입니까? – CBroe

0

FB Javascript SDK 클라이언트에서 테스트를 실행하는 것과 유사한 문제가있었습니다. 내 마지막에 문제는 SDK가 fb_exchange_token에있는 access_token을 처리하는 것을 방해하고 있다는 것입니다. 이 액세스 토큰 문자열의 마지막 세 문자 만 변경하면 오류가 사라집니다. 물론,이 문제를 해결하는 데 도움이되지 않지만, 적어도 내 문제는이 문제입니다.

어쨌든 이러한 호출이 서버에서 이루어져야하므로이 문제를 계속 해결하지 않을 것입니다.