автоматический вход в Facebook - PullRequest
2 голосов
/ 20 июля 2009

Я создаю настольное приложение на C #. одна из вещей, которую должно сделать это приложение, это опубликовать информацию о статусе пользователя в Facebook (например: «Дэйв только что выиграл 3 золотые медали»). это должно произойти вне зависимости от того, вошел ли пользователь в Facebook или нет. Я хочу, чтобы пользователь дал мне все необходимые разрешения один раз, и тогда все произойдет автоматически (я сохраню все, что нужно, в моей БД). Я попытался использовать набор инструментов разработчика Facebook 2.0 для .net, но не увидел там ничего, что могло бы мне помочь. ЛЮБАЯ помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 20 июля 2009

к вам вопрос: вам нужно использовать Facebook Connect API

  • есть функция с именем offline_access - расширенное разрешение.
  • В FB Connect вам нужно переключить правильное всплывающее окно:
  • Рабочий процесс будет таким:
    • Пользователь использует FB Connect, чтобы подтвердить тот факт, что он хочет подключить ваше приложение к своей учетной записи Facebook.
    • Вы вызываете всплывающее окно.
    • Затем вы можете звонить на все звонки с его разрешения, даже если он не в сети (или не использует Facebook connect)

Ради понимания: FB Connect предназначен для того, чтобы вы могли легко войти в приложение и делать все от его имени. offline_access на самом деле предназначен для работы cronjob.

1 голос
/ 26 июля 2009

У меня есть несколько ответов здесь. Я думаю, что это отвечает на другие вопросы, которые я видел в сети в последнее время:

Мой ответ связан с настольными приложениями, которые работают за пределами Facebook (Facebook Connect). + Я использую инструментарий разработчика Facebook 2.1:

Вот как получить специальное разрешение, необходимое для автономного доступа. и как получить сессионный ключ:

facebook.Components.FacebookService FS = new facebook.Components.FacebookService();
FS.GetExtendedPermission(facebook.Types.Enums.Extended_Permissions.offline_access);

Вторая строка заставит вас войти в систему, а затем попросит разрешения после того, как пользователь решит предоставить разрешение, вам сообщается в почтовом URL-адресе - fb_si_session_key. НО разработчики инструментария не сделали достаточно, чтобы донести его до вас: - (

Так что у вас есть несколько вариантов. самое простое:

FS.Logoff();
FS.ConnectToFacebook();

То, что произойдет, это то, что вы увидите экран входа в систему на секунду, и прежде чем вы сможете нажать что-либо, он исчезнет. но на этот раз у вас будет правильный сеансовый ключ. Вы можете получить это так:

string myPermanentSessionKey =  FS.API.SessionKey;

Если вы не хотите снова показывать этот надоедливый экран, у вас есть несколько вариантов, все они связаны с изменением исходных файлов инструментария. Я не буду вдаваться в подробности здесь, но просто скажу вам простой вариант: в функции facebookconnect () я изменил его, чтобы получить параметр (isShow), когда я отправляю true, он ведет себя нормально, когда я отправляю false в это - это пропускает на formLogin.ShowDialog();

Это работает.

...