Я создаю настольное приложение на C #. одно из того, что должно делать это приложение, - это публиковать информацию о статусе пользователя в facebook (например: «Дэйв только что выиграл 3 золотые медали»). это должно произойти независимо от того, вошел ли пользователь сейчас в facebook или нет. Я хочу, чтобы пользователь дал мне все необходимые разрешения один раз, и тогда все произошло бы автоматически (я бы сохранил все, что нужно, в моей БД). Я попытался использовать набор инструментов разработчика facebook 2.0 для .net, но не нашел там ничего, что могло бы мне помочь. ЛЮБАЯ помощь будет оценена по достоинству.
автоматический вход в facebook
Ответы (2)
На ваш вопрос: вам необходимо использовать API Facebook Connect
- есть функция под названием offline_access - это расширенное разрешение.
- В FB Connect вам нужно переключить правильное всплывающее окно:
- The workflow will be like that:
- User uses FB Connect to confirm the fact he wants to connect your app to his facebook account.
- Вы запускаете всплывающее окно.
- Затем вы можете звонить на все звонки с его разрешения, даже если он не в сети (или не использует подключение к facebook).
Для понимания: FB Connect предназначен для того, чтобы вы могли легко авторизовать пользователя в его приложении и делать все от его имени. offline_access на самом деле предназначен для работы cronjob.
Я получил здесь несколько ответов. Думаю, он отвечает на другие вопросы, которые я недавно видел в сети:
Мой ответ связан с настольными приложениями, которые работают вне фейсбука (подключение к фейсбуку). + Я использую набор инструментов разработчика 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();
Это работает.