Ошибка в содержательной странице при инициализации FacebookClient - PullRequest
0 голосов
/ 15 марта 2011

Я получаю сообщение об ошибке «Ссылка на объект не установлена ​​на экземпляр объекта» в ContentPage моего приложения Facebook MasterPage.

Site.master.cs

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

protected void Page_Load(object sender, EventArgs e)
{
        var auth = new CanvasAuthorizer { Perms = "email,read_stream,publish_stream,offline_access,user_about_me" };
        if (auth.Authorize())
        {
            ShowFacebookContent();
        }
}

private void ShowFacebookContent()
{
    var fb = new FacebookClient(this.CurrentSession.AccessToken);
    dynamic myInfo = fb.Get("me");
    lblName.Text = myInfo.name;
    imgProfile.ImageUrl = "https://graph.facebook.com/" + myInfo.id + "/picture";
    lblBirthday.Text = myInfo.birthday;
    pnlHello.Visible = true;
}

Эта мастер-страница работает нормально и отображает имя пользователя и профиль.

Default.aspx.cs

SiteMaster myMasterPage;

protected void Page_Load(object sender, EventArgs e)
{
    myMasterPage = this.Page.Master as SiteMaster;
}
public void LinkButton1_Click(object sender, EventArgs e)
{
    var fb = new FacebookClient(this.myMasterPage.CurrentSession.AccessToken);

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

    /*Dictionary<string, object> feedparameters = new Dictionary<string, object>();

    feedparameters.Add("message", "Testing Application");
    feedparameters.Add("user_message_prompt", "Post To Your Wall");
    feedparameters.Add("display", "iframe");*/

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

Даже эта страница загружается нормально, но проблема возникает, когда я пытаюсь опубликовать сообщение с помощью LinkButton. Следующая строка дает ошибку.

var fb = новый FacebookClient (this.myMasterPage.CurrentSession.AccessToken);

В LinkButton Click Ссылка на объект не установлена ​​на Экземпляр объекта ...

Я буду очень признателен за помощь.

1 Ответ

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

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

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

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

...