Friday, 15 February 2013

FaceBook Cover Albums Access Through Asp.net c#



Create one appication in facebook from Developers page.

Then Create these pages:


oAuthFacebooks.cs:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections.Specialized;
using System.Net;
using System.IO;

/// <summary>
/// Summary description for oAuthFacebooks
/// </summary>
public class oAuthFacebook
{
    public enum Method { GET, POST };
    public const string AUTHORIZE = "https://graph.facebook.com/oauth/authorize";
    public const string ACCESS_TOKEN = "https://graph.facebook.com/oauth/access_token";
    public const string CALLBACK_URL = "http://localhost:3160/WebSite17/fbcallback.aspx";

    private string _consumerKey = "";
    private string _consumerSecret = "";
    private string _token = "";

    #region Properties

    public string ConsumerKey
    {
        get
        {
            if (_consumerKey.Length == 0)
            {
                _consumerKey = "############"; //Your application ID
            }
            return _consumerKey;
        }
        set { _consumerKey = value; }
    }

    public string ConsumerSecret
    {
        get
        {
            if (_consumerSecret.Length == 0)
            {
_consumerSecret = "###########"; //Your application secret
            }
            return _consumerSecret;
        }
        set { _consumerSecret = value; }
    }


    public string Token { get { return _token; } set { _token = value; } }

    #endregion

    /// <summary>
    /// Get the link to Facebook's authorization page for this application.
    /// </summary>
    /// <returns>The url with a valid request token, or a null string.</returns>
    public string AuthorizationLinkGet()
    {
        return string.Format("{0}?client_id={1}&redirect_uri={2}&scope={3}", AUTHORIZE, this.ConsumerKey, CALLBACK_URL,"user_photos");
    }

    /// <summary>
    /// Exchange the Facebook "code" for an access token.
    /// </summary>
    /// <param name="authToken">The oauth_token or "code" is supplied by Facebook's authorization page following the callback.</param>
    public void AccessTokenGet(string authToken)
    {
        this.Token = authToken;
        string accessTokenUrl = string.Format("{0}?client_id={1}&redirect_uri={2}&client_secret={3}&code={4}",
        ACCESS_TOKEN, this.ConsumerKey, CALLBACK_URL, this.ConsumerSecret, authToken);

        string response = WebRequest(Method.GET, accessTokenUrl, String.Empty);

        if (response.Length > 0)
        {
            //Store the returned access_token
            NameValueCollection qs = HttpUtility.ParseQueryString(response);

            if (qs["access_token"] != null)
            {
                this.Token = qs["access_token"];
            }
        }
    }

    /// <summary>
    /// Web Request Wrapper
    /// </summary>
    /// <param name="method">Http Method</param>
    /// <param name="url">Full url to the web resource</param>
    /// <param name="postData">Data to post in querystring format</param>
    /// <returns>The web server response.</returns>
    public string WebRequest(Method method, string url, string postData)
    {

        HttpWebRequest webRequest = null;
        StreamWriter requestWriter = null;
        string responseData = "";

        webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
        webRequest.Method = method.ToString();
        webRequest.ServicePoint.Expect100Continue = false;
        //webRequest.UserAgent = "[You user agent]";
        webRequest.UserAgent = "http://localhost:3160/website17/";
       
        webRequest.Timeout = 20000;

        if (method == Method.POST)
        {
            webRequest.ContentType = "application/x-www-form-urlencoded";

            //POST the data.
            requestWriter = new StreamWriter(webRequest.GetRequestStream());

            try
            {
                requestWriter.Write(postData);
            }
            catch
            {
                throw;
            }

            finally
            {
                requestWriter.Close();
                requestWriter = null;
            }
        }

        responseData = WebResponseGet(webRequest);
        webRequest = null;
        return responseData;
    }

    /// <summary>
    /// Process the web response.
    /// </summary>
    /// <param name="webRequest">The request object.</param>
    /// <returns>The response data.</returns>
    public string WebResponseGet(HttpWebRequest webRequest)
    {
        StreamReader responseReader = null;
        string responseData = "";

        try
        {
            responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
            responseData = responseReader.ReadToEnd();
        }
        catch
        {
            throw;
        }
        finally
        {
            webRequest.GetResponse().GetResponseStream().Close();
            responseReader.Close();
            responseReader = null;
        }

        return responseData;
    }
}


Default.aspx.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        oAuthFacebook oFB = new oAuthFacebook();
        Response.Redirect(oFB.AuthorizationLinkGet());
    }
}


Fbcallback.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class FBcallback : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["code"] != null)
        {
            string code = Request.QueryString["code"].ToString();
            oAuthFacebook fbAC = new oAuthFacebook(); //Standard FB class file available on net in c#
            string respnse = "";
            try
            {
                fbAC.AccessTokenGet(code);
                respnse = fbAC.Token;
            }
            catch (Exception ex)
            {
                Response.Redirect("http://localhost:3160/WebSite17/SiteLogin.aspx?error=" + ex.Message);
            }

            if (Session["RedirectURL"] != null && Session["RedirectURL"].ToString() != "")
            {
                Response.Redirect(Session["RedirectURL"].ToString() + "?token=" + respnse + "&source=FB");
            }
            else
            {
                Response.Redirect("http://localhost:3160/WebSite17/SiteLogin.aspx?token=" + respnse);
            }
        }
        else
        {
            Response.Redirect("http://localhost:3160/WebSite17/SiteLogin.aspxerror=code not found" +
                              Request.QueryString["error_reason"].ToString());
        }              
                
    }
}



SiteLogin.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public partial class SiteLogin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string token = Request.QueryString["token"];       

        string HitURL = string.Format("https://graph.facebook.com/me/albums?fields=name&access_token={0}", token);

        oAuthFacebook objFbCall = new oAuthFacebook();
        string JSONInfo = objFbCall.WebRequest(oAuthFacebook.Method.GET, HitURL, "");   


        JObject Job = JObject.Parse(JSONInfo);
        JToken Jdata = Job.Root;
        JArray jsonVal = Job.Root["data"] as JArray;
      
        string Coverphotoid = null;
        foreach (var j1 in jsonVal)
        {
            if (j1.Value<string>("name").Equals("Cover Photos"))
                Coverphotoid = j1.Value<string>("id");
        }

        HitURL = string.Format("https://graph.facebook.com/{0}/photos?access_token={1}", Coverphotoid, token);

        objFbCall = new oAuthFacebook();
        JSONInfo = objFbCall.WebRequest(oAuthFacebook.Method.GET, HitURL, "");
        Job = JObject.Parse(JSONInfo);
        Jdata = Job.Root;
        jsonVal = Job.Root["data"] as JArray;
        foreach (var j1 in jsonVal)
        {
      Response.Write(Coverphotoid = j1.Value<string>("source") + " <br />" );
        }
    }
}


Click here for Download Newtonsoft.dll

Tuesday, 15 January 2013

FileUpload with Asyncfileupload and JQuery without refreshing page.



FileUpload with Asyncfileupload and JQuery without refreshing page.


.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function uploadStarted() {
            $get("imgDisplay").style.display = "none";
        }
        function uploadComplete(sender, args) {
            var imgDisplay = $get("imgDisplay");
            imgDisplay.src = "images/loader.gif";
            imgDisplay.style.cssText = "";
            var img = new Image();
            img.onload = function() {

            };
            img.src = "<%=ResolveUrl(UploadFolderPath) %>" + args.get_fileName(); ;
            //alert(img.src);
            $('#UploadedImage').append('<img src=' + img.src + ' style="height:100px;width:100px;">');

        }
    </script>

    <style type="text/css" >
        .FileUploadClass
        {
            width: 33px;
            height: 22px;
            background: url('browse-icon.jpg') 0 0 no-repeat;
            display: block;
            overflow: hidden;
            cursor: pointer;
        }
        .FileUploadClass input[type=file]
        {
            cursor: pointer;
            position: relative;
            height: 100%;
            width: auto;
            opacity: 0;
            -moz-opacity: 0;
            filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <cc1:asyncfileupload cssclass="FileUploadClass" onclientuploadcomplete="uploadComplete"
        runat="server" id="AsyncFileUpload1" onuploadedcomplete="FileUploadComplete"
        width="20px" height="26px" style="cursor: pointer;" onclientuploadstarted="uploadStarted" />
    <br />
    <img id="imgDisplay" alt="" src="" style="cursor: pointer; display: none" />
    <div id="UploadedImage">
    </div>
    </form>
</body>
</html>

.cs Page
protected string UploadFolderPath = "~/";
protected void FileUploadComplete(object sender, EventArgs e)
    {
        string filename = System.IO.Path.GetFileName(AsyncFileUpload1.FileName);
        AsyncFileUpload1.SaveAs(Server.MapPath(this.UploadFolderPath) + filename);
    }

Click Download For Sample Code.