facebook c # sdk - пользователь не авторизовал приложение для выполнения этого действия - PullRequest
0 голосов
/ 02 июня 2011

Я создаю консольное приложение, которое будет публиковать потоки на стене страницы.

Проблема: я получаю сообщение "Пользователь не авторизовал приложение для выполнения этого действия". Я использую opengraph, чтобы получить токен доступа.

Я что-то упустил? Любая помощь очень ценится. Спасибо!

// constants
string apiKey = "XXX";
string secret = "XXX";
string pageId = "XXX";

// get access token
string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials", apiKey, secret); // todo: figure out open graph url
WebRequest req = WebRequest.Create(url);
WebResponse resp = req.GetResponse();
StreamReader reader = new StreamReader(resp.GetResponseStream());
string respStr = reader.ReadToEnd();
string accessToken = respStr.Replace("access_token=", "");

// construct the post
dynamic messagePost = new ExpandoObject();
messagePost.access_token = accessToken;
messagePost.picture = "www.google.com/pic.png";
messagePost.link = "www.google.com";
messagePost.name = "some name";
messagePost.captiion = "some caption";
messagePost.description = "some description";
messagePost.req_perms = "publish_stream";
messagePost.scope = "publish_stream";

// using client
FacebookClient client = new FacebookClient(accessToken);

try // to post the post to the page's wall
{
    var result = client.Post(string.Format("/{0}/feed", pageId), messagePost); 
}
    catch (FacebookOAuthException ex)
{
    // getting caught here, with error msg = "The user hasn't authorized the application to perform this action"
}
catch (FacebookApiException ex)
{
    // ignore
}

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

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

http://www.facebook.com/login.php?api_key={API_KEY_GOES_HERE}&next= http://www.facebook.com/connect/login_success.html&req_perms=read_stream,publish_stream

http://www.facebook.com/connect/prompt_permissions.php?api_key={API_KEY_GOES_HERE}&next= http://www.facebook.com/connect/login_success.html?xxRESULTTOKENxx&display=popup&ext_perm=publish_stream&profile_selector_ids={PAGE_ID_GOES_HERE}

Благодаря ответу на Авторизация фан-страницы Facebook для обновления статуса

0 голосов
/ 02 июня 2011

«Нравится ваше приложение» и «разрешить вашему приложению публиковать на своей стене» - это два разных предложения.Не существует волшебной палочки, которая позволяла бы вам переопределить предпочтения пользователя, нравится вам он или нет.

Лучше всего справиться с «неудачей» и перейти к следующему человеку.Если вам нужны знакомые, которые не хотят, чтобы вы размещали их на своей стене, вы можете получить эту информацию в ответе и сохранить ее в каком-либо «журнале».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...