Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация на Facebook через Facebook C# SDK 
:(
    Опции темы
vladvilko
Дата 17.5.2014, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.5.2014

Репутация: нет
Всего: нет



Тогда:
Когда не было еще нормальных интернетов, изучал своими силами Delphi. Что-то получалось, написал несколько проектов, одним из них пользуюсь до сих пор. Так случилось, что начал учиться, ходить в моря, появились другие увлечения и программирование было забыто.

Сейчас:
За это время многое изменилось в сфере программирования, Delphi стал не столь востребованным, на свет пришла технология .Net с её Visual Studio и C#. Почитал пару статей о всём этом. Заинтересовался, внутри организма что-то проснулось, то, что давно уже было забыто. Захотелось начать программировать снова. Положил глаз на C# — Язык молодой и перспективный, ахрененная поддержка от Microsoft и невероятно огромная документация и т.д.  Откопал в этих наших интернетах пару книг о C# и начал неторопливо изучать. Немного познакомился с азами этого языка, начал потихоньку понимать, что да как. Но понял, что эта вся теория, всё-таки немного скучна. Поразмыслив, решил сделать простенький, никому не нужный - Facebook Messenger. Всем известно, что Facebook прекратила её поддержку. Думаю - этот вариант стал бы хорошим тренажером для меня и позволил бы поближе познакомиться с внутренностями языка C#.

Полазив в интернете наткнулся на набор библиотек Facebook C# SDK версии 6.4.2 . Начал новый проект, интегрировал в него SDK. В Фейсбуке создал новое приложение, получил AppID и App Secret. Нарыл документацию и примеры с исходниками. Начал пытаться что-то собрать и наткнулся на первое непреодолимое препятствие. Это общее непонимание, как работать с этим SDK и Facebook Api. Все примеры, которые скачал - работают на старых библиотеках фейсбук сдк, в новых же, многих классов попросту не существует или поменяли своё местоположение (т.е. исходники потеряли свою актуальность и ничем не могут помочь в данной ситуации). А на счет документации к SDK - она сплошь и рядом написана для чего угодно (W8 и W8.1 Store (metro интерфейс), WP7.1 и WP8, Asp Net, Azure и т.д.) кроме Windows Desctop (WinForms).
Поковырявшись пару суток, смог получить Access Token от этой социальной сети, и хоть убей, не могу заставить своё приложение вывести на webbrowser окно авторизации пользователя и пройти авторизацию.
Перелопатил множество англоязычных ресурсов, ничего не нашел по Facebook SDK v.6xx для Windows Forms, всё что есть, есть на старые версии сдк, которые нормально работали со старым Facebook Api.

В общем, вопрос таков - люди, кто работал или работает с этой библиотекой, подскажите, как получить в webbrowser ссылку на окно авторизации пользователя? Поделитесь исходным кодом.

Код

Form1
...
using Facebook;
...
const string _facebookAppId = "Идентификатор приложения"; //Идентификатор приложения
const string _permissions = "user_about_me,read_stream,publish_stream"; //Права доступа
public static FacebookClient _fb = new FacebookClient(); //Facebook.FacebookClient()
...
        public static string LoginUri()
        {
            var redirectUrl = "https://www.facebook.com/connect/login_success.html";

            //Отправляю запрос в фейсбук и записываю полученную ссылку на страницу авторизации
            var loginUrl = _fb.GetLoginUrl(new
            {
                client_id = _facebookAppId,
                redirect_uri = redirectUrl,
                scope = _permissions,
                display = "popup",
                response_type = "token"
            });

            return loginUrl.AbsoluteUri;            
        }
...
private string loginUriFB = Form1.LoginUri();

        public FBLogin()
        {
            InitializeComponent();
            
            fbWebLogin.Navigate(loginUriFB);         //Отправляю веббраузеру полученную выше ссылку   
        }

        //При передачи ссылки на логин фейсбука ( loginUriFB ) 
        //отправляется tokken в e.Url
        private void fbWebLogin_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            FacebookOAuthResult fresult = null;
            Form1._fb.TryParseOAuthCallbackUrl(e.Url, out fresult); //Эти конструкции не нужны, но пока
            if (fresult != null)                                                     //экспериментировал, оставил так
            {
                var callbackUri = new Uri(e.Url.AbsoluteUri); //записываю полученный урл браузера
                var facebookOAuthResult = Form1._fb.ParseOAuthCallbackUrl(callbackUri);
                var accessToken = facebookOAuthResult.AccessToken; //токен получен, что делать - хз

                if (String.IsNullOrEmpty(accessToken))
                {
                    // Пользователь не залогенился
                }
                else
                {
                    MessageBox.Show(accessToken);                    
                }
                
            }
        }


Получаю в accessToken токкен от фейсбука, а что делать дальше, не знаю.
Facebook SDK v6.4.2
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0382 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.