FB.ui popup window doesn't close

后端 未结 6 1854
青春惊慌失措
青春惊慌失措 2021-01-15 01:44

The initialization code:

            FB.init({
                appId: \'123456789012345\', 
                channelUrl: \'http://localhost/Some/Url/FacebookCh         


        
相关标签:
6条回答
  • 2021-01-15 01:59

    A bit old thread, but this might help someone... The popup will self close if you neglect to put in the "redirect_uri" parameter. (plus, the response callback will now work too)

    0 讨论(0)
  • 2021-01-15 02:07

    Not an easy one... but it could work:

    First, to force closing the dialog you must pay attention to the response: See the entire documentation and example here: https://developers.facebook.com/docs/reference/javascript/FB.ui/

    Once you have the response you should close the dialog: See: http://facebook.stackoverflow.com/questions/4646441/how-to-close-a-facebook-sdk-dialog-opened-with-fb-ui

    Hope that helps! :)

    0 讨论(0)
  • 2021-01-15 02:10

    Make sure 'http://localhost/Some/Url/FacebookChannel' hosted in the same domain with your app callback url.

    0 讨论(0)
  • 2021-01-15 02:20

    I have the same problem and have never been able to get a response from Facebook for the callback function. I don't see anything in console.log or any alerts I insert in the function.

    My solution was to put a URL in FB.ui's redirect_uri that goes to an HTML page with self.close (or window.close). The FB.ui popup redirects there after the user's input and immediately closes. Remember to change your FB app's Site URL setting so it matches the domain the file resides on.

    Here's my code, tied to my form's submit action. The function(response) callback is still there but not used. If anyone sees a syntax error please comment on it.

        FB.ui ({
            method: 'feed',
            name: '',
            link: '',
            picture: '',
            caption: '',
            description: '',
            actions: {name:'',link:''},
            redirect_uri: 'http://.../self.close.html'
            },
            function(response) {
                console.log(response);
                if (response && response.post_id) {
                    alert('yes');
                    self.close();
                } else {
                    alert('else yes');
                }
            });
    

    The line of code in self.close.html:

    <script type="text/javascript">self.close();</script>
    
    0 讨论(0)
  • 2021-01-15 02:21

    The pop up will close if you do not give the redirect_uri as mentioned above - as well as if you do not give display (that is, do not give display: 'popup' or display: 'iframe').

    0 讨论(0)
  • 2021-01-15 02:22

    add return false; to your method call.

    onsubmit="someMethod(); return false;"
    
    0 讨论(0)
提交回复
热议问题