1

我想使用 JS SDK 在我的画布页面中获取发件人的 ID。

我已经编写了这段代码,但它不起作用:

    <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>

为什么 ?

4

1 回答 1

2

如果您想获取所有请求,那么您应该查询/me/apprequests这将为您获取一个包含所有应用程序未决应用程序请求的 json 数组。然后,您可以遍历它们并获取发件人 ID。

但是,如果您只需要一个请求,那么您应该查询/REQUEST_ID. 例如,假设请求的 id 是xxxx_yyyy(其中 xxx 是请求 id,yyyy 是您的用户 id),那么您需要: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");
            }
        }
    }
});
于 2012-05-22T09:23:10.453 回答