Форма сообщения с Facebook C # SDK - PullRequest
2 голосов
/ 10 февраля 2011

Может кто-нибудь указать мне, как я могу использовать форму сообщения с Facebook C # SDK в приложении MVC? Это приложение Canvas на основе iframe.

У меня есть следующий код

[HttpPost, CanvasAuthorize(Permissions = "publish_stream")]
public ActionResult Enter(FormCollection col)
{
    var fbApp = new FacebookClient(this.CurrentSession.AccessToken);

    JsonObject result = (JsonObject)fbApp.Get("me");

    long FacebookId = long.Parse(result["id"].ToString());

    //CODE TO INSERT GOES HERE

     return View();
}

И форма такая

<form action="/EnterComp/Enter" enctype="multipart/form-data" method="post">
<fieldset>
    <legend>Fields</legend>
    <div class="editor-label">
        <label for="Text">Text</label>

    </div>
    <div class="editor-field">
        <input id="Text" name="Text" type="text" value="" />

    </div>
    <div class="editor-label">
        <label for="ImagePath">ImagePath</label>
    </div>
    <div class="editor-field">

        <input type="file" name="ImagePath" id="ImagePath">

    </div>
    <div class="editor-label">
        <label for="VideoPath">VideoPath</label>
    </div>
    <div class="editor-field">
        <input type="file" name="VideoPath" id="VideoPath">

    </div>

    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
</form>

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

EDIT

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

Однако, если кто-то может предложить что-нибудь еще. Пожалуйста, помогите!

1 Ответ

5 голосов
/ 11 февраля 2011

На самом деле есть помощник для форм MVC, который решит эту проблему для вас.

Помощник входит в вашу форму:

Синтаксис бритвы:

@Html.FacebookSignedRequest();

Синтаксис ASP.NET

<%=Html.FacebookSignedRequest() %>

Все, что на самом деле делает, это сохраняет ваш подписанный_резерв в качестве скрытого в вашей форме Таким образом, когда форма будет опубликована, аутентификатор Facebook сможет повторно авторизовать запрос.

...