C # Facebook SDK поток авторизации - как перенаправить обратно на страницу? - PullRequest
0 голосов
/ 23 мая 2011

У меня есть приложение, которое будет использоваться на вкладке страницы Facebook, для которого я буду запрашивать основные разрешения.

Я использую ASP.NET MVC2 с ASP.NET 3.5.

Я использую следующие атрибуты действий:

[HttpPost]
[CanvasAuthorize]
public ActionResult Index(string signed_request)
{
    ViewData["section"] = "post";
    FacebookPageModel page = new FacebookPageModel();
    if (!string.IsNullOrEmpty(signed_request))
    {
        string signedRequest = Request.Form["signed_request"];
        var DecodedSignedRequest = 
            FacebookSignedRequest.Parse(
             ((FacebookConfigurationSection)   
                ConfigurationManager
                    .GetSection("facebookSettings"))
                    .AppSecret, 
            signed_request);
        var SignedRequestData = DecodedSignedRequest.Data;
        var RawRequestData = (IDictionary<string, object>)SignedRequestData;
        // ok, start getting the data
        page.user_id = FacebookWebContext.Current.UserId.ToString();
        if (RawRequestData.ContainsKey("page") == true)
        {
            Facebook.JsonObject RawPageData = 
                (Facebook.JsonObject)RawRequestData["page"];
            if (RawPageData.ContainsKey("liked") == true)
            {
                page.UserLikesThisPage = (bool)RawPageData["liked"];
            }
        }

        if (RawRequestData.ContainsKey("app_data") == true)
        {
            page.app_data = RawRequestData["app_data"].ToString();                    
        }
    }
    return View(page);
}

public class FacebookPageModel
{
    public Dictionary<string, string> SignedRequestParameters { get; set; }
    public bool UserLikesThisPage { get; set; }
    public string app_data { get; set; }
    public string user_id { get; set; }
    public IEnumerable<TwitterSearchResultsModel> tweets { get; set; }
}   

web.config:

<facebookSettings 
    appId="221731264504206" 
    appSecret="blah-blah-blah" 
    canvasUrl="http://url-of-canvas-page-tab/" 
    canvasPage="http://url-of-canvas-page-tab/" />

Вызов CanvasAuthorize без каких-либо других параметров, похоже, запрашивает базовые разрешения, что я и хочу. Проблема заключается в том, что после нажатия кнопки «Разрешить» URL-адрес пересылки отправляет меня на страницу профиля пользователя, а не на вкладку «Моя страница».

Как настроить приложение для пересылки пользователя на страницу вызова после разрешения запрошенных разрешений?

Спасибо, Скотт

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Оказывается, что [CanvasAuthorize] имеет некоторые дополнительные параметры, которые я могу использовать:

[CanvasAuthorize(ReturnUrlPath="enter-url-here")]

Я знаю, странно, что я этого не знал, поскольку C # Facebook SDK так хорошо документирован. : ^)

Но это бесплатно, так кто же я, чтобы жаловаться, верно?

Спасибо.

0 голосов
/ 25 мая 2011

CanvasAuthorize предназначен не для вкладок, а только для приложений холста.

...