1

好的,所以我知道 Javascript,并且一直在为 Facebook 拼凑一个小应用程序。问题出在我的 JS 和 facebook api 之间。

我使用标准库用用户朋友列表填充数组并显示它们以供选择。

function renderMFS() {
// First get the list of friends for this user with the Graph API
FB.api('/me/friends', function(response) {
    var container = document.getElementById('mfs');
    var mfsForm = document.createElement('form');
    mfsForm.id = 'mfsForm';

    // Iterate through the array of friends object and create a checkbox for each one.
    for (var i = 0; i < Math.min(response.data.length, 1000); i++) {
        var friendItem = document.createElement('div');
        friendItem.id = 'friend_' + response.data[i].id;
        friendItem.innerHTML = '<input type="radio" onclick="sendSlap(this)" name="friends" value="' + response.data[i].id + '" />' + response.data[i].name;

        mfsForm.appendChild(friendItem);

    }

    container.appendChild(mfsForm);
    });

}

然后我使用自己的功能发布了两条提要消息。

function sendSlap(cb) {



FB.ui({
    method : 'feed',
    link: 'https://apps.facebook.com/537130286376086',
    to : cb.value,
    description : 'You have been bitch slapped by a friend',
    actions: [
        {'name': 'Slap Back', 'link': 'https://apps.facebook.com/537130286376086'}
        ],
}, function(response) {
});

FB.ui({
    method : 'feed',
    link: 'https://apps.facebook.com/537130286376086',
    description: "Someone just got bitch slapped",
    actions: [
        {'name': 'Slap Someone!', 'link': 'https://apps.facebook.com/537130286376086'}
        ],
}, function(response) {
});

}

所有这些工作都很好。问题是当我尝试将实际数据带入“帖子”时。我的第一种方法不起作用,也没有错误,它根本没有产生帖子。

description: "Someone just got bitch slapped" + cb.name,

如您所见,var "cb" 带有来自调用的数据。cb.value 工作得很好,它以同样的方式被调用以及我正在尝试做的事情。但是,我没有深入研究,而是快速创建了一个单独的函数来提取我需要的信息。

FB.api(cb.value, function(response) {

    var data1=response.name;
            return data1;


    }

我使用警报来检查 cb.value 是否正常通过并且 response.name 是否正确,并且我检查了所有数据的拼写。然后我将 data1 拉回帖子并在帖子中得到“未定义”。我摆弄了这几种方法,但它并没有带回数据。第一种方法最有意义,但这里有一些严重错误。

4

2 回答 2

1

morantis,我有一个构建的应用程序并遇到了其中一些问题,我通过使用带有访问令牌的 FB.getLoginStatus 解决了它,当这些函数中需要 fb.ui 时,它在我的应用程序中提供了完整的功能,并完全控制您从用户那里获得的所有数据。还使用全局对象,在保留信息(如提要)方面做到了这一点。

于 2013-11-08T12:09:32.920 回答
0

使用原来的调用,我解决了一半的问题。在第一个函数中,我将“name”从“friends”更改为 response.data[i].name。这使得从第一个函数中提取数据变得更加容易。事实是该函数正在发送一个“div”及其所有信息。

于 2013-11-08T04:53:01.520 回答