facebook-c # -sdk: размещение на стене пользователя - PullRequest
2 голосов
/ 16 марта 2011

Привет, я все еще учусь Facebook C# SDK 5.0.3, я создаю приложения для Facebook (iFrame). Я следую примеру, который был прикреплен к SDK. Я успешно запустил его и хочу расширить его, создав событие кнопки, которое каждый раз, когда пользователь нажимает кнопку «Hello World», будет опубликовано на его стене. Вот код:

protected void btnRegister_Click(object sender, EventArgs e)
{
    try
    {


        var fbApp = new FacebookClient(FacebookContext.Current);
        dynamic result = fbApp.Post("/me/feed", new Dictionary<string, object> { { "message", "Hello World" } });


    }

    catch (Exception ex)
    {
        Response.Write(ex.ToString());
        Msg.Text = "An error may occurred while processing your request, you may try again.";
    }
}

После запуска этого кода я получаю эту ошибку

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

Обратите внимание, что в моем событии page_load я могу успешно получить имя пользователя, используя пример из пакета Sdk,

public FacebookSession CurrentSession
{
    get { return (new CanvasAuthorizer()).Session; }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //Response.Redirect("Registration-Closed.aspx");
        Panel1.Visible = true;
        Panel2.Visible = false;


        var auth = new CanvasAuthorizer { Perms = "user_about_me,publish_stream,offline_access" };

        if (auth.Authorize())
        {
            ShowFacebookContent();
        }

    }
}

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

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

Я надеюсь, что я работаю:

var client = new FacebookClient("my_access_token");
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 = client.Post("me/feed", parameters);
0 голосов
/ 01 июля 2012

Срок действия обычного токена доступа истекает через определенные минуты. Я думаю, что ваш токен доступа истек до вызова события post. Вы можете обновить свой токен доступа и затем продолжить

...