Я создаю приложение Iframe для Facebook.Я не использую Javascript SDK.
Это код, который я использую, и он хорошо работает во всех браузерах, кроме Safari.
protected FacebookApp app;
Защищено CanvasAuthorizer cauth;
Response.AddHeader ("p3p", "CP = \" IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS НАШ IND CNT \ "");app = new FacebookApp ();cauth = новый CanvasAuthorizer (приложение);if (! cauth.IsAuthorized ()) {myAuth auth = new myAuth ();myAuth.Authorize (приложение, запрос, ответ, завивка);}
if (cauth.Authorize())
{
// Делайте здесь свои приложения}
public class myAuth
{
public static void Authorize(FacebookApp fbApp, System.Web.HttpRequest request, System.Web.HttpResponse response, string perms)
{
Authorize(fbApp, request, response, perms, null);
}
public static void Authorize(FacebookApp fbApp, System.Web.HttpRequest request, System.Web.HttpResponse response, string perms, string redirectUrl)
{
Uri url = fbApp.GetLoginUrl();
NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(url.Query);
if (!string.IsNullOrEmpty(perms))
nvc.Add("req_perms", perms);
if (!string.IsNullOrEmpty(redirectUrl))
nvc["next"] = GetAppRelativeUrl(redirectUrl);
else if (request.QueryString.Count > 0)
nvc["next"] = GetAppRelativeUrl(request.Path.Replace(request.ApplicationPath, string.Empty).Replace(request.ApplicationPath.ToLower(), string.Empty) + "?" + request.QueryString);
else
nvc["next"] = GetAppRelativeUrl(request.Path.Replace(request.ApplicationPath, string.Empty).Replace(request.ApplicationPath.ToLower(), string.Empty));
UriBuilder ub = new UriBuilder(url);
ub.Query = nvc.ToString();
string content = CanvasUrlBuilder.GetCanvasRedirectHtml(ub.Uri);
response.ContentType = "text/html";
response.Write(content);
response.End();
}
public static string GetAppRelativeUrl(string url)
{
return CanvasSettings.Current.CanvasPageUrl.ToString();
}
}
Я читал о том, что Safari не разрешает использование сторонних файлов cookie, и я полагаю, что именно в этом проблема.Мой вопрос: есть ли способ справиться с этим с помощью SDK, или каковы мои варианты.
С уважением, Андерс Петтерссон