Вызов AJAX не запускает метод действия при оформлении CanvasAuthorize - PullRequest
0 голосов
/ 19 мая 2011

Я пытаюсь поделиться объектами на Facebook, разместив их на стене через мое приложение FB. Я настраивал все на стороне клиента и на стороне сервера (ASP.NET MVC3), но заметил, что когда ActionMethod украшен атрибутом CanvasAuthorize, метод вообще не запускается. Так что я могу сделать?

P.S .: Я проверил опубликованные данные с помощью вызова AJAX, и с этой стороны все выглядело нормально. Более того, если я прокомментирую строку [CanvasAuthorize], метод сработает, и все параметры будут в порядке, за исключением случаев, когда я получаю вызов fb.Post(), он жалуется, что не существует access_token, который имеет смысл.

    //[CanvasAuthorize(Permissions = "publish_stream")]
    public ActionResult PostItem(string message, string link, string picture, string name)
    {
        var fb = new FacebookWebClient();
        var postArgs = new Dictionary<string, string>();
        postArgs["message"] = message;
        postArgs["link"] = link;
        postArgs["picture"] = picture;
        postArgs["name"] = name;
        fb.Post("/me/feed", postArgs);
        return Json(new {result = "success"}, JsonRequestBehavior.AllowGet);
    }

Есть идеи?

UPDATE:

Вот продолжение: Передача подписанного запроса вместе с AJAX-вызовом в ActionMethod, украшенный CanvasAuthorize

1 Ответ

0 голосов
/ 21 мая 2011

Используйте скрытое поле, которое вы передаете при вызове ajax.

Вы можете реализовать это самостоятельно или использовать:

<%: Html.FacebookSignedRequest() %>
...