У меня довольно простой сайт, который позволяет пользователям подключаться через Facebook.
Я использую C # facebook SDK MVC.
Сначала мне не требовалось никаких специальных разрешений, поэтому у пользователей не было проблем с подключением. мой код выглядел так
public class FacebookController : BaseController
{
public FacebookSession FacebookSession
{
get { return (new CanvasAuthorizer().Session); }
}
public ActionResult Profile()
{
var client = new FacebookClient(this.FacebookSession.AccessToken);
dynamic me = client.Get("me");
ViewBag.Name = me.name;
ViewBag.Id = me.id;
return View();
}
}
и на моем webconfig
<facebookSettings appId="XXXXXXXXXXXXXX" appSecret="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
Через некоторое время мне потребовались более конкретные разрешения, поэтому я добавил CanvasAuthorize к своему действию - так что
[CanvasAuthorize(Permissions = "user_about_me,user_relationships,email,publish_stream")]
public ActionResult Profile()
Это дало мне это исключение:
Сведения об исключении: System.Exception: CanvasUrl является нулевым или пустым
Итак, я добавил в свою веб-конфигурацию canvasUrl, которая вызвала у меня ту же ошибку без canvasPage. Так что теперь моя веб-конфигурация имеет все 4
<facebookSettings appId="XXXXXXXXXX" appSecret="XXXXXXXXXXXXXXXXXXXXx" canvasUrl = "http://localhost:60606/" canvasPage = "https://apps.facebook.com/XXXXXXXXXXXX/"/>
Так что теперь мой пользователь может войти через Facebook, моя проблема в том, что когда он входит, он перенаправляется в мое приложение Facebook (http://apps.facebook.com/XXXXXXXXX/facebook/profile)
вместо этого вернуться на мой сайт (http://localhost:60606/facebook/profile)
Как я могу получить необходимые мне разрешения и перенаправить моего пользователя обратно на мой сайт после того, как он войдет в систему?
Спасибо