Вопросы о SDK facebook - PullRequest
       5

Вопросы о SDK facebook

0 голосов
/ 20 апреля 2011

Я смотрю на использование Facebook SDK и мне интересно, какую версию мне использовать?

Похоже, что некоторые важные изменения произошли с 4,2 до 5 (в настоящее время все еще в бета-версии). Должен ли я пойти дальше и использовать бета-версию? У кого-нибудь есть ides, когда он выйдет из беты?

Мой второй вопрос: как я могу использовать его для аутентификации.

Сейчас я использую DotNetOpenAuth, чтобы выполнить всю мою аутентификацию openId для моего сайта. Я использую там своего рода плагин для аутентификации в Facebook (oAuth), однако я планирую использовать больше функций Facebook на своем сайте, так что я думаю, что использовать этот плагин, а затем библиотеку sdk, когда библиотека кажется способной делать, бессмысленно все это.

В любом случае, как мне выполнить аутентификацию с помощью библиотеки SDK. Я хочу, чтобы на моей странице входа была кнопка, чтобы они нажимали ее, она переходит на Facebook, они аутентифицируются, и я получаю некоторый запрос, в котором говорится, что они были аутентифицированы, а затем я даю им печенье и впускаю их.

Все уроки, которые я видел, показывают, что вы используете только Facebook в качестве единственного метода аутентификации, но, конечно, для меня у меня есть openId, facebook и twitter.

http://facebooksdk.codeplex.com/wikipage?title=Getting%20Started%20with%20an%20ASP.NET%20MVC%203%20Website&referringTitle=Getting%20Started

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Я использую Facebook SDK, и мой совет для вас - использовать бета-версию

Причина в том, что Facebook изменяет и обесценивает большую часть старого интерфейса REST и делает Graph API единственным способомДоступ к данным.Таким образом, чтобы быть будущим доказательством, самый последний и лучший способ - это путь.

Теперь это бета-версия, поэтому не все на 100%.Если вам нужна стабильность и вы не против внесения изменений, используйте стабильную версию и затем обновитесь позже.

Что касается аутентификации, процесс аутентификации довольно прост .

вам нужен ваш authURL:

string authURL = @"https://graph.facebook.com/oauth/authorize?client_id=" + Settings.appId + "&redirect_uri=" + redirectUrl + permissions

, где appId - ваш идентификатор приложения Facebook (вы получаете его при регистрации приложения в Facebook), redirectUrl - этоURL, по которому вы хотите, чтобы Facebook отправил вам токен вызова, и ваши разрешения - это список вещей, к которым вы хотите получить доступ с помощью вашего токена аутентификации Facebook

Вы делаете всплывающее окно или что-либо, что просматриваетэтот URL.Пользователь войдет в Facebook (если он еще этого не сделал), а затем ему будет представлен экран авторизации приложения (если он еще не авторизовал приложение).Как только они авторизуются (или сразу же, если уже авторизовались), страница будет перенаправлена ​​на предоставленную вами redirectUrl.В URL будет переменная GET с именем code, которая будет содержать строку запроса.Вы берете этот код вызова и добавляете его в качестве переменной запроса к другому URL-адресу в виде:

https://graph.facebook.com/oauth/access_token?client_id=YOURID&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=YOURSECRET&code=THATCODE

Этот URL-адрес возвратит ключ аутентификации ...

Фу!Это довольно сложный процесс .... Если все сделано вручную :) Теперь, когда вы немного больше узнали о том, что происходит, вы можете оценить, что SDK делает для вас.

Для аутентификации с помощью SDK, Просто выполните 19 простых шагов, описанных в этой ссылке

Легко, да?

0 голосов
/ 20 апреля 2011

Что касается 4.2 против 5.0 бета-версии, я думаю, вам нужно решить, хотите ли вы использовать бета-версию или стабильную версию.Я уверен, что у них есть список изменений в их бета-версии, вы можете посмотреть на изменения, начиная с более старой версии.

Относительно аутентификации с помощью Facebook.У меня есть проект, в котором я поддерживаю стандартную проверку подлинности форм и создание учетных записей, а также вход в Facebook.В моем AccountController у меня есть одно действие для входа в Forms и одно для входа в Facebook.

Чтобы настроить сборку Facebook, вы можете следовать опубликованному учебнику, а затем нажать кнопку Facebook на своей странице и подобный код, чтобы начать процесс аутентификации:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
    $(function () {
        FB.init({ appId: '<%= FacebookSettings.Current.AppId %>', status: true, cookie: true, xfbml: true });

        $('#fbLoginButton').click(function () {
            FB.login(function (response) {
                if (response.session) {
                    // Success - execute our facebook login action.
                    window.location = "<%= Url.Action("FacebookLogin", "Account") %>";
                } else {
                    // user cancelled login or failed
                }
            }, { perms: 'email' });

            return false;
        });
    });

Aciton Facebook работает:

  1. Была ли аутентификация Facebook успешной?
  2. У нас есть пользователь с идентификатором Facebook в качестве имени пользователя в системе?
  3. Если не создать пользователя, указать имя, адрес электронной почты и т. Д. Из данных Facebook
  4. Установить файл cookie проверки подлинности с помощью форм

Псевдокод:

FacebookApp facebook = new FacebookApp ();
if (facebook.IsAuthenticated) {
        string userName = facebook.UserId.ToString();

        if (UsersRepository.ByUserName(userName ) == null) {
            // Create a User using the Facebook name, email, etc data
        }            
        FormsAuthentication.SetAuthCookie (userName , true);
}

Таким образом, идея заключается в том, что я делегирую аутентификацию этим сторонним сервисам, а затем создаю пользователя в моей системе с информацией, которую я могу получить из них.Также в моем проекте, потому что я хочу, чтобы пользователь установил / очень некоторые настройки после создания учетной записи, я перенаправляю их на страницу, где они могут это сделать.

PS: совет относительно запуска вашего веб-проекта локально в Visual Studio.Вы можете создать частное приложение Facebook с «URL сайта», например, «http://localhost:4911/"» и использовать этот appId. Это позволит вам играть с Facebook локально.

...