예제 #1
0
        public void ExchangeCodeForToken_CheckExchangeUserCodeForToken_ReturnToken(string code)
        {
            var _obj = new FacebookAuthorization();

            var token = _obj.ExchangeCodeForToken(code);

            Assert.AreNotEqual(token, string.Empty);
        }
예제 #2
0
        public void ExchangeCodeForToken_CheckExchangeUserCodeForToken_ReturnNull(string code)
        {
            var _obj = new FacebookAuthorization();

            var token = _obj.ExchangeCodeForToken(code);
        }
예제 #3
0
    /// <summary>
    /// Get a facebook user
    /// </summary>
    public async static Task<FacebookUser> GetFacebookUser(Domain current_domain, string code)
    {
        // Create variables
        FacebookAuthorization facebook_authorization = null;
        FacebookUser facebook_user = null;

        // Get a static http client
        HttpClient client = DefaultHttpClient.Get();

        // Create a request message
        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://graph.facebook.com/oauth/access_token?client_id=" + current_domain.facebook_app_id + "&redirect_uri="
            + current_domain.web_address + "/customer/facebook_login_callback" + "&client_secret=" + current_domain.facebook_app_secret + "&code=" + code);
        request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("Gzip"));
        request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("Deflate"));

        // Get the response
        HttpResponseMessage response = await client.SendAsync(request);

        // Make sure that the response is successful
        if (response.IsSuccessStatusCode)
        {
            // Get facebook authorization
            facebook_authorization = JsonConvert.DeserializeObject<FacebookAuthorization>(await response.Content.ReadAsStringAsync());
        }
        else
        {
            // Get an error
            FacebookErrorRoot root = JsonConvert.DeserializeObject<FacebookErrorRoot>(await response.Content.ReadAsStringAsync());
        }

        // Make sure that facebook authorization not is null
        if (facebook_authorization == null)
        {
            return null;
        }

        // Create a request message with a modified url
        request = new HttpRequestMessage(HttpMethod.Get, "https://graph.facebook.com/me?fields=id,name&access_token=" + facebook_authorization.access_token);
        request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("Gzip"));
        request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("Deflate"));

        // Get the response
        response = await client.SendAsync(request);

        // Make sure that the response is successful
        if (response.IsSuccessStatusCode == true)
        {
            // Get a facebook user
            facebook_user = JsonConvert.DeserializeObject<FacebookUser>(await response.Content.ReadAsStringAsync());
        }
        else
        {
            // Get an error
            FacebookErrorRoot root = JsonConvert.DeserializeObject<FacebookErrorRoot>(await response.Content.ReadAsStringAsync());
        }

        // Return a facebook user
        return facebook_user;

    } // End of the GetFacebookUser method
예제 #4
0
 public void RequestCode_GetRequestCode_ReturnCode()
 {
     var _obj = new FacebookAuthorization();
 }
예제 #5
0
 public static Engine Facebook(FacebookAuthorization authorization)
 {
     return(new Engine(new FacebookEngineConfiguration(authorization)));
 }