Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Jin Botol 134 posts 287 karma points
    Apr 20, 2018 @ 06:52
    Jin Botol
    0

    Access Token for login via Facebook

    Hi,

    I already get the Access Token of the user who has logged in my app, and my problem is I don't know how to register them to Umbraco server side because I don't have idea where to start with.

    I need help, appreciate any help!

    Jin

  • Jin Botol 134 posts 287 karma points
    Apr 20, 2018 @ 07:37
    Jin Botol
    0

    Here is my partial view called _Facebook.cshtml

    @using Skybrud.Social.Facebook
    @using Skybrud.Social.Facebook.OAuth
    @inherits WebViewPage
    
    @{
    
        // Initialize a new instance of the OAuth client
        FacebookOAuthClient oauth = new FacebookOAuthClient
        {
            AppId = "205808210016635",
            AppSecret = "22076d2329e422cb2e6475a01e40679a",
            RedirectUri = "https://localhost:44304/"
        };
    
        // Read some input from the query string
        string code = Request.QueryString["code"];
        string action = Request.QueryString["do"];
        string error = Request.QueryString["error"];
        string errorCode = Request.QueryString["error_code"];
        string errorDescription = Request.QueryString["error_description"];
    
    
        // Handle the state when the user clicks our login button
        if (action == "login")
        {
    
            // Get the redirect URI (if present)
            string redirect = (Request.QueryString["redirect"] ?? "/");
    
            // Set the state (a unique/random value)
            string state = Guid.NewGuid().ToString();
            Session["Facebook_" + state] = redirect;
    
            // Construct the authorization URL
            string authorizatioUrl = oauth.GetAuthorizationUrl(state, FacebookScope.Email);
    
            // Redirect the user to the OAuth dialog
            Response.Redirect(authorizatioUrl);
            return;
    
        }
    
        // Handle if an error occurs during the Facebook authentication (eg. if the user cancels the login)
        if (!String.IsNullOrWhiteSpace(error))
        {
            <div class="alert alert-danger">
                <strong>Login failed</strong><br />
                @errorDescription (code: @errorCode)
            </div>
            return;
        }
    
        // Handle the state when the user is redirected back to our page after a successful login with the Facebook API
        if (!String.IsNullOrWhiteSpace(code))
        {
    
            // Get the state from the query string
            string state = Request.QueryString["state"];
    
            // Validate state - Step 1
            if (state == null)
            {
                <div class="alert alert-danger">No <strong>state</strong> specified in the query string.</div>
                return;
            }
    
            // Validate state - Step 2
            string session = Session["Facebook_" + state] as string;
            if (session == null)
            {
                <div class="alert alert-danger">Session expired?</div>
                return;
            }
    
            // Remove the state from the session
            Session.Remove("facebook_" + state);
    
            // Exchange the auth code for an access token
            string accessToken = oauth.GetAccessTokenFromAuthCode(code);
    
            // Print out the access token to the user (we really shouldn't do this in a live environment)
            <div class="alert alert-info">
                <strong>Access token:</strong> @accessToken
            </div>
    
            // Initialize a new instance of the FacebookService class so we can make calls to the API
            FacebookService service = FacebookService.CreateFromAccessToken(accessToken);
    
            var response = service.Users.GetUser("me");
    
            <div class="alert alert-info">
                <strong>ID:</strong> @response.Body.Id<br />
                <strong>Name:</strong> @response.Body.Name<br />
                <strong>Email:</strong> @response.Body.Email
            </div>
    
            return;
    
        }
    
        <a href="?do=login" class="btn btn-primary">Login with Facebook</a>
    
    }
    
Please Sign in or register to post replies

Write your reply to:

Draft