У меня есть несколько ответов здесь. Я думаю, что это отвечает на другие вопросы, которые я видел в сети в последнее время:
Мой ответ связан с настольными приложениями, которые работают за пределами 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();
Это работает.