English 中文(简体)
书库用户 认证程序
原标题:Facebook user Authentication process

我正在尝试这个例子:http://thinkdiff.net/facebook/new-javascript-sdk-oauth-2-0-based-fblink-tutorial/“rel=“nofollow” http://thinkdiff.net/facebook/new-javascript-sdk-oauth-2-0--fb--tutorial/。

但是,我正在发现Xml的错误,即拒绝批准。

I have changed the application ID also. I am bit confused about the new UI of developers.facebook.com I was comfortable with the old UI.

I am not sure where I dont mention my call back url.

请帮助我。

<div id="fb-root"></div>
        <script type="text/javascript">
            var button;
            var userInfo;

            window.fbAsyncInit = function() {
                FB.init({ appId:  273713715982249 , //change the appId to your appId
                    status: true, 
                    cookie: true,
                    xfbml: true,
                    });

               showLoader(true);

               function updateButton(response) {
                    button       =   document.getElementById( fb-auth );
                    userInfo     =   document.getElementById( user-info );

                    if (response.authResponse) {
                        //user is already logged in and connected
                        FB.api( /me , function(info) {
                            login(response, info);
                        });

                        button.onclick = function() {
                            FB.logout(function(response) {
                                logout(response);
                            });
                        };
                    } else {
                        //user is not connected to your app or logged out
                        button.innerHTML =  Login ;
                        button.onclick = function() {
                            showLoader(true);
                            FB.login(function(response) {
                                if (response.authResponse) {
                                    FB.api( /me , function(info) {
                                        login(response, info);
                                    });    
                                } else {
                                    //user cancelled login or did not grant authorization
                                    showLoader(false);
                                }
                            }, {scope: email,user_birthday,status_update,publish_stream,user_about_me });   
                        }
                    }
                }

                // run once with current status and whenever the status changes
                FB.getLoginStatus(updateButton);
                FB.Event.subscribe( auth.statusChange , updateButton);  
            };
            (function() {
                var e = document.createElement( script ); e.async = true;
                e.src = document.location.protocol 
                    +  //connect.facebook.net/en_US/all.js ;
                document.getElementById( fb-root ).appendChild(e);
            }());


            function login(response, info){
                if (response.authResponse) {
                    var accessToken                                 =   response.authResponse.accessToken;

                    userInfo.innerHTML                             =  <img src="https://graph.facebook.com/  + info.id +  /picture">  + info.name
                                                                     + "<br /> Your Access Token: " + accessToken;
                    button.innerHTML                               =  Logout ;
                    showLoader(false);
                    document.getElementById( other ).style.display = "block";
                }
            }

            function logout(response){
                userInfo.innerHTML                             =   "";
                document.getElementById( debug ).innerHTML     =   "";
                document.getElementById( other ).style.display =   "none";
                showLoader(false);
            }

            //stream publish method
            function streamPublish(name, description, hrefTitle, hrefLink, userPrompt){
                showLoader(true);
                FB.ui(
                {
                    method:  stream.publish ,
                    message:   ,
                    attachment: {
                        name: name,
                        caption:   ,
                        description: (description),
                        href: hrefLink
                    },
                    action_links: [
                        { text: hrefTitle, href: hrefLink }
                    ],
                    user_prompt_message: userPrompt
                },
                function(response) {
                    showLoader(false);
                });

            }
            function showStream(){
                FB.api( /me , function(response) {
                    //console.log(response.id);
                    streamPublish(response.name,  I like the articles of Thinkdiff.net ,  hrefTitle ,  http://thinkdiff.net , "Share thinkdiff.net");
                });
            }

            function share(){
                showLoader(true);
                var share = {
                    method:  stream.share ,
                    u:  http://thinkdiff.net/ 
                };

                FB.ui(share, function(response) { 
                    showLoader(false);
                    console.log(response); 
                });
            }

            function graphStreamPublish(){
                showLoader(true);

                FB.api( /me/feed ,  post , 
                    { 
                        message     : "I love thinkdiff.net for facebook app development tutorials",
                        link        :  http://ithinkdiff.net ,
                        picture     :  http://thinkdiff.net/iphone/lucky7_ios.jpg ,
                        name        :  iOS Apps & Games ,
                        description :  Checkout iOS apps and games from iThinkdiff.net. I found some of them are just awesome! 

                }, 
                function(response) {
                    showLoader(false);

                    if (!response || response.error) {
                        alert( Error occured );
                    } else {
                        alert( Post ID:   + response.id);
                    }
                });
            }

            function fqlQuery(){
                showLoader(true);

                FB.api( /me , function(response) {
                    showLoader(false);

                    //http://developers.facebook.com/docs/reference/fql/user/
                    var query       =  FB.Data.query( select name, profile_url, sex, pic_small from user where uid={0} , response.id);
                    query.wait(function(rows) {
                       document.getElementById( debug ).innerHTML =  
                          FQL Information:  +  "<br />" + 
                          Your name:        +  rows[0].name                                                            + "<br />" +
                          Your Sex:         +  (rows[0].sex!= undefined ? rows[0].sex : "")                            + "<br />" +
                          Your Profile:     +  "<a href= " + rows[0].profile_url + " >" + rows[0].profile_url + "</a>" + "<br />" +
                          <img src="        +  rows[0].pic_small +  " alt="" />  + "<br />";
                     });
                });
            }

            function setStatus(){
                showLoader(true);

                status1 = document.getElementById( status ).value;
                FB.api(
                  {
                    method:  status.set ,
                    status: status1
                  },
                  function(response) {
                    if (response == 0){
                        alert( Your facebook status not updated. Give Status Update Permission. );
                    }
                    else{
                        alert( Your facebook status updated );
                    }
                    showLoader(false);
                  }
                );
            }

            function showLoader(status){
                if (status)
                    document.getElementById( loader ).style.display =  block ;
                else
                    document.getElementById( loader ).style.display =  none ;
            }

这是我使用的守则,不是要标志,而是我没有获得用户信息。

最佳回答

Facebook has introduced Auth Dialog feature in Facebook application Setting page. Now you don’t need to write code to for user permissions. You can do it by configuring the right values in Application settings. get more details at http://iforapple.org/?p=436

问题回答
function fblogin() {
    FB.login(function(response) {
     if(response.session && response.perms){
         FB.api( /me , function(response) {

         });
     }
    }, {perms:  });//set the permissions
}
</script>
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId  :   ,//giv ur app id
      status : true, // check login status
      cookie : true, // enable cookies to allow the server to access the session
      xfbml  : true  // parse XFBML
    });
  };

  (function() {
    var e = document.createElement( script );
    e.src =  https://connect.facebook.net/en_US/all.js ;
    e.async = true;
    document.getElementById( fb-root ).appendChild(e);
  }());
</script>




相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签