Приложение Iframe Canvas с мастер-страницей - PullRequest
1 голос
/ 18 марта 2011

Я занимаюсь разработкой приложения Iframe-Canvas.

Я использую мастер-страницу для получения доступа и отображения нескольких деталей, что хорошо работает.

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

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

вот мой код:

Site.master.cs

protected void Page_Load(object sender, EventArgs e)
{
    var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me","user_birthday","user_location","offline_access","publish_stream" } };

    if (auth.Authorize())
    {
        ShowFacebookContent();
    }
}
private void ShowFacebookContent()
{
    var fb = new FacebookWebClient();
    dynamic myInfo = fb.Get("me");
    lblName.Text = myInfo.name;
    imgProfile.ImageUrl = "https://graph.facebook.com/" + myInfo.id + "/picture";
    lblBirthday.Text = (myInfo.birthday == null ? string.Empty : DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy"));
    lblHometown.Text = (myInfo.hometown.name == null ? string.Empty : myInfo.hometown.name);
    lblLocation.Text = (myInfo.location.name == null ? string.Empty : myInfo.location.name);
    pnlHello.Visible = true;
}

Default.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{

}

public void LinkButton1_Click(object sender, EventArgs e)
{
    var fb = new FacebookClient("access_token");
    //var fb = new FacebookWebClient();

    dynamic feedparameters = new ExpandoObject();
    feedparameters.message = (message_txt.Text == null ? " " : message_txt.Text);
    feedparameters.user_message_prompt = "userPrompt";

    dynamic result = fb.Post("me/feed", feedparameters);
}

Я довольно новичок в FacebookSDK, поэтому любая помощь будет очень признательна.

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Уэл наконец-то нашел в чем проблема. Необходимо добавить скрытое поле.

<input type="hidden" name="signed_request" value="<%: Request.Params["signed_request"]%>"/>

Я думаю, что это нигде не упоминается ни в документации, ни в предоставленных примерах.

0 голосов
/ 19 марта 2011

Вы не должны передавать "access_token" как строковое значение. Вам нужно получить действительное значение access_token, предоставленное вам Facebook при установлении сеанса пользователя, а затем передать это значение access_token в конструктор.

Проверьте этот вопрос для получения дополнительной информации.

...