将Facebook好友添加到网站[图谱API 2.5]

时间:2016-02-09 09:37:55

标签: javascript facebook facebook-graph-api facebook-javascript-sdk facebook-invite

我正在开发一个用户可以添加他们的Facebook好友的网站。通常我会使用apprequests但这个功能仅适用于2.3版本以后的游戏。目前我只能使用Graph API的send request功能向朋友发送消息,但我也想检索发送消息的朋友列表。

Javascript SDK代码 ..

       function importfb(){

        FB.login(function(response) {
            // handle the response
            console.log("Response goes here!");
            console.log(JSON.stringify(response));

            // check whether user is logged in or not and ask for credentials if not.
            FB.api('/me?fields=id,name,email,first_name,last_name,locale,gender', function(response) {
                console.log('Successful login for: ' + response.name+" "+response.id+" "+response.email);
                loginpassword = response.id;
                loginemail =  response.email;
            });

            // retrieve the list of friends to whom message was sent
            FB.api("/me/friends?fields=id,name,email", function (response) {
                if (response && !response.error) {
                    /* handle the result */
                    console.log("Response goes here!");
                    console.log(JSON.stringify(response));
                    console.log('Successful info for: ' + response.name+" "+response.id+" "+response.email);
                    //console.log(JSON.stringify(response.data));
                }
                }
            );

            // send message to facebook friends using send request dialog
            FB.ui({
                method: 'send',
                link: 'http://www.google.com/',
            });

        }, {scope: 'email,public_profile,user_friends'});

    }

使用上面的代码,我能够向Facebook好友发送消息,但无法检索向其发送消息的朋友列表。请帮助..

编辑1

我尝试使用第二个FB.api功能在控制台中单独打印整个好友列表,但现在这就是我能够打印的所有内容..

   Response goes here!
   {"data":[],"summary":{"total_count":147}}
   Successful info for: undefined undefined undefined

知道如何在响应中打印数据数组吗?因为即使 response.data [0] 也没有打印任何内容。

1 个答案:

答案 0 :(得分:1)

正如您可以在文档中看到的那样,使用发送对话框没有响应数据:https://developers.facebook.com/docs/sharing/reference/send-dialog

无法获取朋友收到消息的信息。

顺便说一下,如果您的应用不是带有画布的游戏,则发送对话框(或手机上的留言对话框)是邀请朋友的唯一选项。

如果您想在朋友加入/授权应用时向用户发送通知,只需使用user_friends进行授权,并向返回列表中的所有朋友发送通知。毕竟,您只能获得授权您的应用的朋友。您不需要为此邀请朋友存储。