【问题标题】:AJAX Call Does Not Trigger Action Method When Decorated With CanvasAuthorize使用 CanvasAuthorize 装饰时,AJAX 调用不会触发 Action 方法
【发布时间】:2011-05-19 11:32:56
【问题描述】:

我正在尝试通过我的 FB 应用程序将项目发布在墙上,从而在 Facebook 上分享项目。我在客户端和服务器端也设置了所有内容(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);
    }

有什么想法吗?

更新:

这里有后续:Passing the signed_request along with the AJAX call to an ActionMethod decorated with CanvasAuthorize

【问题讨论】:

    标签: asp.net-mvc facebook asp.net-mvc-3 asp.net-ajax facebook-c#-sdk


    【解决方案1】:

    使用通过 ajax 调用传递的隐藏字段。

    您可以自己实现或使用:

    <%: Html.FacebookSignedRequest() %>
    

    【讨论】:

    • 我这样做了,然后当我使用 Firebug 检查它时,这就是我所得到的(我实际上已经预料到了):&lt;input id="signed_request" name="signed_request" type="hidden" value=""/&gt; 有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多