Я пытаюсь сделать JQuery AJAX-вызов на свой контроллер MVC в моем Facebook C # SDK приложении Canvas, например:
$('#btnGetInfo').click(function () {
$.getJSON("/Home/GetInfo", null,
function (result) {
});
return false;
});
Контроллер:
public ActionResult GetInfo()
{
// do some Facebook call
var fb = new FacebookClient();
dynamic albums = fb.Get(string.Format("/{0}/photos", friendID));
}
Тогда я получу (OAuthException) An access token is required to request this resource
, что, я полагаю, более или менее ожидаемо. Поэтому я пытаюсь украсить метод:
[CanvasAuthorize(Permissions = "user_about_me,user_photos,.....)]
public ActionResult GetInfo()
{
...
}
Но тогда метод никогда не вызывается со страницы.
В примере проекта из CodePlex размещение кода в домашнем контроллере Index () работает, поэтому это не проблема конфигурации, не в приложении и не в настройках Facebook.
Я почти уверен, что это как-то связано с сохранением информации аутентификации через посты. Возможно, класс CanvasAuthorizer
должен быть как-то задействован, может быть, вещи signed_request
? Я новичок в программировании на FB и с трудом собираю кусочки ...
Обновление: если я вызываю свой метод, используя стандартный
<%: Html.ActionLink("DoThis", "GetInfo", "Home")%>
вызов, метод выполняется корректно (с подписанным запросом), поэтому вопрос сейчас;
Как я могу сделать вызов jQuery для моего контроллера ASP.NET MVC?