Я пытаюсь использовать Facebook C # SDK для публикации сообщений на стене страницы компании.Мне нужно сделать это из пакетного задания, так что это не веб-приложение, с которым взаимодействует какой-либо конкретный пользователь.У меня есть приложение Facebook, настроенное под моим собственным идентификатором Facebook, и я предоставил ему разрешения publish_stream, share_item, offline_access и manage_pages для моей учетной записи.(Я могу убедиться, что эти разрешения были предоставлены приложению на моей странице настроек Facebook.) А страница компании, на которую я пытаюсь опубликовать, - это страница, которую я создал сам, поэтому у меня должен быть полный доступ к ней.
Я аутентифицируюсь в Facebook с помощью идентификатора приложения и секрета для этого приложения, получаю токен доступа, собираю сообщение для публикации и пытаюсь опубликовать его.Я получаю следующее исключение:
Facebook.FacebookOAuthException was unhandled by user code
Message=(OAuthException) (#200) The user hasn't authorized the application to perform this action
Я перепробовал несколько вариантов темы, но не могу понять, что я делаю неправильно.Вот немного моего кода:
var client = new FacebookClient("APP ID", "SECRET");
_log.DebugFormat("access token={0}", client.AccessToken);
dynamic parameters = new ExpandoObject();
parameters.message = "testing 123";
/* fill in other parameters */
dynamic result = client.Post(FanPageId+"/feed", parameters);
/* here's where I get the exception */
Я видел ссылки на извлечение токена доступа к конкретной странице из данных, возвращенных из / me / account, но я не могу понять, как это сделатьиз автономного приложения, которое аутентифицируется как приложение Facebook, а не как пользователь Facebook.
ОБНОВЛЕНИЕ: Я получил часть пути, используя этот бит кода для подключения кFacebook:
var client = new FacebookClient("NON-EXPIRING OAUTH TOKEN");
... где "не истекающий oauth токен" - это тот, который отображается в приложении для разработчиков на Facebook для рассматриваемого приложения.
хотя мой собственный идентификатор, так что теперь мне нужно сделать дополнительный шаг, чтобы выяснить, как сделать так, чтобы сообщение появлялось на самой странице.