Intellisoft
Intellisoft

Reputation: 11

How to check whether a facebook user liked my facebook page or not using ASP.Net

  1. I want to check whether a facebook user liked my facebook page or not. I got so many solutions using javascript but I want to implement this requirement in ASP.Net.

  2. I copied the code from the below link: http://duanedawnrae.com/Blog/post/2012/02/29/Determine-if-a-Facebook-user-Likes-your-page-with-ASPNET.aspx

  3. I got the below ASP.Net code which works for the same.

ASP.Net code:

public class WebService : System.Web.Services.WebService
{
    [WebMethod()]
    public string GetFacebookLikeStatus(string fbpageid, string fbappid, string fbtoken, string fburl)
    {
        string strReturn = null;
        // Placeholder for the Facbook "like" API call
        string strURL = null;
        strURL = "https://graph.facebook.com/me/likes?access_token=" + fbtoken;
        // Placeholder for the Facebook GET response
        WebRequest objGETURL = null;
        objGETURL = WebRequest.Create(strURL);
        // Declare response stream
        Stream objStream = null;
        // Declare The Facebook response
        string strLine = null;
        // Declare a count on the search term
        int intStr = 0;
         try
        {
            // Create an instance of the StreamReader
            StreamReader objReader = new StreamReader(objStream);
            // Get the response from the Facebook API as a JSON string.
            // If access_token is not correct for the logged
            // on user Facebook returns (400) bad request error
            objStream = objGETURL.GetResponse().GetResponseStream();
            // If all is well 
            try
            {
                // Execute the StreamReader
                strLine = objReader.ReadToEnd().ToString();
                // Check if Facebook page Id exists or not
                intStr = strLine.IndexOf(fbpageid);    // if valid return a value
                if (intStr > 0)
                {
                    strReturn = "1";
                    // if not valid return a value
                }
                else
                {
                    strReturn = "0";
                }
                objStream.Dispose();
            }
            catch (Exception ex)
            {
                // For testing comment out for production
                strReturn = ex.ToString();
                // Uncomment below for production
                //strReturn = "Some friendly error message"
            }
        }
        catch (Exception ex)
        {
            // For testing comment out for production
            strReturn = ex.ToString();
            // Uncomment below for production
            //strReturn = "Some friendly error message"
        }
        return strReturn;
    }
}
  1. The above code contains a webservice which contains a single function. The function contains four input parameters and returns a single output string.

  2. But when I run this webservice I got the error, “Value cannot be null. Parameter name: stream”. This error is coming because the “objStream” variable is set to null. Please fix the issue so that I can get my correct output as I dont know how to implement my requirement.

Upvotes: 0

Views: 301

Answers (1)

andyrandy
andyrandy

Reputation: 73984

Like Gating is not allowed on Facebook, and neither is incentivizing users to like your Page. Users must like something only because they really want to, you can´t reward them in any way.

That being said, you would need the user_likes permission to use /me/likes, and you would need to get it approved by Facebook. Which will not happen just for checking if the user liked your Page.

Btw, that article is from 2012. A lot of stuff changed since then.

Upvotes: 1

Related Questions