Facebook Graph API / me / feed, возвращающий 302 ответа - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь заставить работать FB.api / me / feed, но он возвращает состояние 302. Найдено.

Когда пользователь не разрешил Расширенные разрешения stream_publish, функция работает, как и предполагалось,возвращая ошибку о том, что пользователь не авторизовал разрешения для этого действия.

Однако после принятия расширенных разрешений и повторного вызова я получаю ответ 302 Found из Facebook, и появляется сообщение об ошибке JS.

Ошибка JS: синтаксическая ошибка - <! DOCTYPE html>

проверка ответа NET Я вижу, что выполняется звонок:

https://graph.facebook.com/me/feed?access_token=[access_token]&callback=FB.ApiServer._callbacks.f32a1cd2d00c92&message=Reading%20JS%20SDK%20documentation&method=post&pretty=0&sdk=joey

и возвращен статус: 302 найдено

Разве ответ не должен быть 200ОК?Что я здесь не так делаю?Ниже приведен код, относящийся к проблеме ... Заранее большое спасибо!

PS. Возможно, было бы полезно упомянуть, что другие вызовы FB.api, такие как / me и / me / permissions, работают нормально.Только FB.api / me / feed, кажется, переустанавливает 302. Найдено.

<body>
  <a href="#" onclick="nowPost()">nowPost</a>
  <script>
    function nowPost() {
      var body = 'Reading JS SDK documentation';
      FB.api('/me/feed', 'post', { message: body }, function(response) {
        if (!response || response.error) {
          alert('Error occured');
        } else {
          alert('Post ID: ' + response.id);
        }
      });
    }
  </script>
</body>

<script type="text/javascript">
  window.fbAsyncInit = function() {
    FB.init({
        appId  : fbAppId,
        status : true, // check login status
        cookie : true, // enable cookies to allow the server to access the session
        xfbml  : true,  // parse XFBML
        oauth  : true
    });

    (function()
    {
      var e = document.createElement('script');
      e.src = document.location.protocol + '//connect.facebook.net/<c:out value="${locale}" />/all.js';
      e.async = true;
      document.getElementById('fb-root').appendChild(e);
    }()); 

</script>

Обновление: Я заметил, что другие приложения Facebook используют FB.api / user_id / feed/ получали ту же проблему.Если это каким-то образом не связано с oAuth 2.0 (который я обновил до JS SDK), я склонен думать, что Facebook снова что-то сломал.

...