0

我试图通过我的FB应用程序将它们发布到墙上来共享Facebook上的项目。我在客户端和服务器端设置了所有的东西(ASP.NET MVC3),但我注意到当ActionMethod装饰了CanvasAuthorize属性时,该方法根本不会被触发。那么有什么我可以做的吗?AJAX调用不会触发用Canvas装饰的操作方法授权

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:

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

回答

0

使用,你通过你的Ajax调用隐藏字段。

您可以自行或使用实现此:

+0

我这样做,然后当我检查它使用Firebug这里是我得到了什么(我实际上已经预期):'<输入ID =“signed_request”name =“signed_request”type =“hidden”value =“”/>'有什么想法? – Kassem 2011-05-21 15:15:01

相关问题