Ошибка при получении токена доступа для веб-форм c # с использованием facebook c # sdk - PullRequest
1 голос
/ 30 ноября 2011

Я выполнил поиск по крайней мере 100 сотен проблем с токеном доступа, но не нашел решения для моей проблемы.Я использую SDK facebook для авторизации, но когда я пытаюсь просто. Получите «me», он выдает ошибку с этой ошибкой: «(OAuthException) Активный токен доступа должен использоваться для запроса информации о текущем пользователе».Я использую .NET 3.5 Framework, поэтому я не могу использовать «динамический».Когда я подставляю действительный идентификатор, где «я», он работает и показывает имя.Когда я пытаюсь отправить сообщение в фид, я получаю сообщение «(OAuthException) (# 200) Пользователь не авторизовал приложение для выполнения этого действия».Любая помощь будет отличной.Спасибо.

Вот мой код:

        var webRequest = (HttpWebRequest)HttpWebRequest.Create("https://graph.facebook.com/oauth/access_token");
        webRequest.Method = "POST";
        webRequest.ContentType = "application/x-www-form-urlencoded";

        var requestString = "client_id=[appid]&client_secret=[secret]&redirect_uri=http%3A%2F%2Fwww.website.com&grant_type=client_credentials&scope=publish_stream,read_stream,offline_access";

        byte[] bytedata = Encoding.UTF8.GetBytes(requestString);
        webRequest.ContentLength = bytedata.Length;

        var requestStream = webRequest.GetRequestStream();
        requestStream.Write(bytedata, 0, bytedata.Length);
        requestStream.Close();

        var response = webRequest.GetResponse();
        var responseStream = new StreamReader(response.GetResponseStream());
        var responseString = responseStream.ReadToEnd();

        responseStream.Close();
        response.Close();

        if (!String.IsNullOrEmpty(responseString))
        {
            var accessToken = responseString.Replace("access_token=", "");
            var fb = new FacebookWebClient(accessToken.ToString());
            var me = fb.Get<FBUser>("100000219214008");
            string firstName = me.name;
            var postparameters = new Dictionary<string, object>();
            postparameters["message"] = "Hello world!";
            postparameters["name"] = "This is a name";
            postparameters["link"] = "http://thisisalink.com";
            postparameters["description"] = "This is a description";
            var result = fb.Post("/100000219214008/feed", postparameters); 
            Response.Write (firstName.ToString());
        }

1 Ответ

0 голосов
/ 02 декабря 2011

После нескольких дней борьбы с Facebook C # SDK я решил использовать Facebook Javascript SDK. Этот SDK имеет широкую поддержку, примеры и документацию, хотя и на стороне клиента. Это просто работает.

...