facebook c # sdk начало работы - PullRequest
       21

facebook c # sdk начало работы

8 голосов
/ 04 января 2012

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

Я подписался на разработчика Facebook и у меня есть AppID и App Secret

Я пытался поиграть с C # facebook SDK и просмотрел несколько примеров.

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

Я также создал несколько примеров, используя маркер приложения, но, похоже, он не может писать на стену.

Я написал эквивалент в Twitter очень быстро. Должно быть, я что-то здесь упускаю ???

Как правильно поступить?

Кажется, все, что мне нужно, это: FaceBookClient (appID, appSecret) а потом просто FaceBookClient.Put (сообщение) ???

уточнение добавлено:

Игра с приложением Winform C # facebook SDK Мне пришлось изменить их FacebookLoginDialog.cs, чтобы использовать следующий URL:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APPID&client_secret=APPSECRET&scope=user_about_me,publish_stream,offline_access

, который возвращает ключ доступа в WebBrowser.DocumentText

Если я тогда позвоню:

            var fb = new FacebookClient(_accessToken);
            dynamic parameters = new ExpandoObject();
            parameters.message = "Hello World!";
            dynamic result = fb.Post("me/feed", parameters);

Я получаю исключение:

(OAuthException) Активный токен доступа должен использоваться для запроса информации о текущем пользователе.

Если я изменю код выше, чтобы НЕ использовать этот токен доступа - но использовать appID и Appsecret:

           FacebookClient myFacebookClient = new FacebookClient("APPID", "APPSECRET");
            dynamic parameters = new ExpandoObject();
            parameters.message = "Hello World!";
            dynamic result = myFacebookClient.Post("me/feed", parameters);

Тогда я получаю исключение:

(OAuthException) Активный токен доступа должен использоваться для запроса информации о текущем пользователе.

Полагаю, это то же самое исключение

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Вот что я нашел.

Загрузите исходный код Facebook C # sdk и примеры из http://facebooksdk.codeplex.com/

Распакуйте код и загрузите в Visual Studio пример SDK Facebook C # под названием CS-WinForms.

Вверху Form1.cs - введите идентификатор приложения

Запустите приложение.

Form1.cs всплывает с кнопкой «Войти в Facebook». Нажмите на кнопку.

FacebookLoginDialog.cs всплывает с окном браузера, в котором отображается Facebook с запросом разрешений.

FacebookLoginDialog.cs создает окно браузера, которое откроет ваш пользователь на Facebook и запросит разрешения. По умолчанию эти разрешения: user_about_me, publish_stream, offline_access.

Offline_access означает, что AccessToken вы получаете - никогда не истекает

Нажмите «ОК» в Facebook, чтобы приложение получило доступ к вашим данным Facebook.

FacebookLoginDialog.cs должен обнаружить, что вы вошли в систему и получите токен доступа, который никогда не истекает.

Маркер доступа представляет собой строку.

Вставьте точку останова, чтобы вы могли скопировать этот токен доступа. Сохраните этот токен доступа, поскольку теперь вы можете использовать его для доступа к Facebook.

На сайте разработчиков Facebook есть несколько инструментов, которые вы можете использовать для проверки токена доступа. https://developers.facebook.com/tools/debug/access_token Вы можете ввести свой токен доступа и нажать «Отладка», в нем должен быть указан ваш идентификатор приложения, идентификатор пользователя, а для «истекает» - «никогда».

Если у вас есть этот токен доступа, вы можете просто написать код:

                        var fb = new FacebookClient(AccessToken);
                        dynamic parameters = new ExpandoObject();
                        parameters.message = FacebookString;
                        dynamic result = fb.Post("me/feed", parameters);
                        var id = result.id;

чтобы отправить сообщение в Facebook!

0 голосов
/ 04 января 2012

Вы должны запросить offline_access в дополнение к publish_stream. Получив токен с неограниченным сроком действия, сохраните его в своем приложении.

...