Facebook C # SDK 4.2.1 размещение на стене проблемы - PullRequest
1 голос
/ 30 января 2011

Здравствуйте, у меня проблема, когда я пытаюсь опубликовать что-то на стене пользователя. вот мой код

 protected void Page_Load(object sender, EventArgs e)
{       
        app = new FacebookApp();
        auth = new CanvasAuthorizer(app);
    auth.Perms += "user_about_me,publish_stream,create_event,offline_access";
    if (auth.IsAuthorized())
    {
        Response.Write("authorized    " + app.Session.UserId.ToString()+"  "+app.Session.AccessToken + "<br/>");
        dynamic rez = app.Get("me");
        Response.Write(rez.first_name + "  "+rez.last_name);
    }
    else
        Response.Write("not authorized    ");      
}
protected void btnPost_Click(object sender, EventArgs e)
{
    dynamic parameters = new ExpandoObject();
    parameters.message = "Check out this funny article";
    parameters.link = "http://www.example.com/article.html";
    parameters.picture = "http://www.example.com/article-thumbnail.jpg";
    parameters.name = "Article Title";
    parameters.caption = "Caption for the link";
    parameters.description = "Longer description of the link";
    parameters.actions = new
    {
        name = "View on Zombo",
        link = "http://www.zombo.com",
    };
    parameters.privacy = new
    {
        value = "ALL_FRIENDS",
    };
    parameters.targeting = new
    {
        countries = "US",
        regions = "6,53",
        locales = "6",
    };
    dynamic result = app.Api("/me/feed",parameters);
}

когда я пытаюсь опубликовать сообщение, я получаю:

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

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: Facebook.FacebookOAuthException: (OAuthException) Для запроса информации о текущем пользователе должен использоваться токен активного доступа.

P.S.

dynamic rez = app.Get("me");
        Response.Write(rez.first_name + "  "+rez.last_name); 

работает без проблем!

Заранее спасибо.

1 Ответ

3 голосов
/ 01 февраля 2011

Это потому, что вы не дали ему токен доступа, попробуйте поставить

FacebookApp app = new FacebookApp("my_access_token");

вверху события кнопки post и замените

dynamic result = app.Api("/me/feed",parameters);

с

dynamic result = app.Post("me/feed", parameters);
...