Question Post on Facebook Page Error: (OAuthException - #200)

paulnamroud

New member
Joined
Apr 2, 2013
Messages
4
Programming Experience
10+
Hello,

I created a web page in Visual Studio 2005 in order to post messages on my Facebook Page and i'm using .Net Framework 4.0.
I downloaded and added as a reference in my project:
- Facebook 6.4.2
- System.Dynamic.Dll
- Newtonsoft.Json.dll (for .net 4.0)

When i try to run my project i got the following error message: (OAuthException - #200) (#200) The user hasn't authorized the application to perform this action
What i'm doing wrong ? Can you help me to fix the error ?

Thank you

Paul

Here's my C# Code:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


using System.Collections.Generic;


using System.Net;
using System.IO;
using System.Text;
using System.Collections.Specialized;


using System.Dynamic;


using Facebook;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;


public partial class fb : System.Web.UI.Page
{
    private const string FacebookAppId = "123456789012";
    private const string FacebookAppSecret = "b9s7xkd8d88a8dc9v9vlx9s8kcv9c0s8";


    private const string AuthenticationUrlFormat =
        "https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials&scope=manage_pages,offline_access,publish_stream,user_photos,publish_checkins,photo_upload";




    protected void Page_Load(object sender, EventArgs e)
    {
        string accessToken = GetAccessToken(FacebookAppId, FacebookAppSecret);
        PostMessage(accessToken, "Test message");
    }


    private string GetAccessToken(string apiId, string apiSecret)
    {


        string accessToken = string.Empty;
        string url = string.Format(AuthenticationUrlFormat, apiId, apiSecret);


        WebRequest request = WebRequest.Create(url);
        WebResponse response = request.GetResponse();


        using (Stream responseStream = response.GetResponseStream())
        {
            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
            String responseString = reader.ReadToEnd();


            NameValueCollection query = HttpUtility.ParseQueryString(responseString);


            accessToken = query["access_token"];
        }


        if (accessToken.Trim().Length == 0)
            throw new Exception("There is no Access Token");


        return accessToken;
    }


    private void PostMessage(string accessToken, string p_message)
    {
        try
        {
            FacebookClient facebookClient = new FacebookClient(accessToken);


            var args = new Dictionary<string, object>();
            args["message"] = p_message;
            args["caption"] = String.Empty; // "Caption";
            args["description"] = "test description";
            args["name"] = "Name";
            //args["picture"] = "";
            //args["link"] = "http://www.google.com";


            args["req_perms"] = "publish_stream";
            args["scope"] = "publish_stream";
            args["access_token"] = accessToken;




            //Then pass your destination ID and target along with FB Post info. You're Done.
            dynamic publishedResponse = facebookClient.Post("/" + PAGE_ID + "/feed", args);
        }


        catch (FacebookOAuthException ex)
        {
             //handle something
            Response.Write("FacebookOAuthException = " + ex.Message.ToString() +"<br />");
        }


        catch (Exception ex)
        {
             //handle something else
            Response.Write("Exception = " + ex.Message.ToString() + "<br />");
        }


    }
}
 
Last edited by a moderator:

jmcilhinney

C# Forum Moderator
Staff member
Joined
Apr 23, 2011
Messages
4,913
Location
Sydney, Australia
Programming Experience
10+
How can i define a user and set his authorization ?

That sounds like something that would be done on Facebook. The application that is unauthorised can't grant itself authorisation.
 

jmcilhinney

C# Forum Moderator
Staff member
Joined
Apr 23, 2011
Messages
4,913
Location
Sydney, Australia
Programming Experience
10+
I've never used OAuth before so no but, from the sound of the error message, I would suggest that your code may well be fine and it's a matter of appropriate permissions being set elsewhere.
 
Top Bottom