在Facebook API调用完成执行Graph API [2.5]

时间:2016-02-12 05:22:54

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

我在我的网络应用中使用Facebook Graph API的 发送消息 功能。我想在用户点击Facebook API呈现的对话框的发送按钮后显示弹出成功对话框,但目前它正在与Facebook呈现对话框同时显示。

JavaScript代码 ..

     function importfb(){
        reasonForAddFriend = "importFacebook";

        FB.login(function(response) {
            // handle the 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;
            });

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


        confirmationIndex("Success","importfb called");
    }

当前代码的输出 ..

send message fb api

我希望在我同时点击上面屏幕截图中的发送按钮后显示成功对话框。请帮助..

1 个答案:

答案 0 :(得分:1)

请始终查看API的相关文档。 FB.ui接受第二个参数,一个在对话框关闭时将被调用的函数。

  

https://developers.facebook.com/docs/javascript/reference/FB.ui#parameters

     

功能(响应)

     

这指定了被调用的函数   每当UI对话框关闭时,无论是成功,取消还是   错误。响应对象取决于所使用的对话框。   请参阅相关对话框自己的参考文档以查看响应   应该返回的对象。默认为null。

所以简单地传递一个回调函数并在那里调用你的对话框

FB.ui({
    method: 'send',
    link: 'http://www.google.com/',
},function(response){
    //check 'response' to see if call was successful
    confirmationIndex("Success","importfb called");
});