1

Я хочу получить идентификатор отправителя на моей странице холста с помощью JS SDK.получить идентификатор отправителя на странице холста

Я написал этот код, но он не работает:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 
    <head> 
    </head> 

    <body> 

    <div id="fb-root"></div> 
<script> 
console.log("one"); 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'myAppId', // App ID 
     status: true, 
     cookie: true, 
     xfbml: true, 
     oauth: true}); 

console.log("two"); 
FB.api("/me/apprequests", function(response) { 
    console.log("1"); 
    if (response.data && response.data.length > 0) { 
     console.log("2"); 
     for (var i = 0; i < response.data.length; i++) { 
      console.log("3"); 
      if (response.data[i].from) { 
       console.log("Sender: " + response.data[i].from); 
      } 
      else { 
       console.log("App request and not a user request, unknown sender"); 
      } 
     } 
    } 
}); 

    }; 
console.log("three"); 
    // Load the SDK Asynchronously 
    (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)); 
</script> 
    </body> 

    </html> 

Почему?

ответ

2

Если вы хотите получить все запросы, тогда вы должны запросить /me/apprequests, который предоставит вам массив json всех приложений, ожидающих приложения. Затем вы можете перебрать их и получить идентификатор отправителя.

Однако, если вы хотите только один запрос, тогда вы должны запросить /REQUEST_ID. Например, предположим, что идентификатор запроса: xxxx_yyyy (где xxx - идентификатор запроса, а yyyy - ваш идентификатор пользователя), тогда вам нужно: https://graph.facebook.com/REQUEST_ID.


Редактировать

Ну, если вы хотите перебрать все просьбы, то попросите их все, чтобы начать с, а затем перебрать, что, вместо того, чтобы выдавать запрос HTTP для каждого запроса. Также выясняется, что поле «форма» в запросе доступно только для «пользовательских запросов», а не для «приложений, генерируемых приложением».

Попробуйте этот код:

FB.api("/me/apprequests", function(response) { 
    if (response.data && response.data.length > 0) { 
     for (var i = 0; i < response.data.length; i++) { 
      if (response.data[i].from) { 
       console.log("Sender: " + response.data[i].from); 
      } 
      else { 
       console.log("App request and not a user request, unknown sender"); 
      } 
     } 
    } 
}); 
+0

Я хочу, чтобы все запросы. Я перебираю их, как вы можете видеть в моем коде выше, но это не работает :( – xRobot

+0

Проверьте мой пересмотренный ответ. –

+0

Только что сделано, но это не работает, и в firebug я вижу «document.getElementById (« fb -root ") is null" :( – xRobot

Смежные вопросы