Flickr .net API получает frob с помощью MVC

Я использую Asp.net MVC и пытаюсь использовать flickr API через: http://flickrnet.codeplex.com/< /а>

Я просмотрел документацию и сын не знаю, как заставить это работать для MVC. см. фрагмент из документов:

Веб-аутентификация? Как по-другому?

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

Вы можете использовать метод Flickr.AuthCalcWebUrl для создания URL-адреса для перенаправления пользователя.

string url = flickr.AuthCalcWebUrl(AuthLevel.Write);
Response.Redirect(url);

Затем на странице, указанной выше URL-адресом обратного вызова, вы получаете Frob в строке запроса. Например. если ваш URL-адрес обратного вызова http://example.com/flickr.aspx, пользователь будет перенаправлен на http://example.com/flickr.aspx?frob=1234abcd1234abcd.

Затем вы можете использовать Frob для получения токена аутентификации, как в примере выше:

protected void Page_OnLoad(object sender, EventArgs e)
{
  string frob = Request.QueryString["frob"];
  Flickr flickr = new Flickr(ApiKey, SharedSecret);

Я вставил URL-адрес, возвращенный AuthCalcWebUrl, в свой callbackurl на странице настроек моего приложения.

Вопрос в MVC, как мне сделать перенаправление, чтобы затем получить frob?


person raklos    schedule 31.01.2012    source источник


Ответы (1)


Я только что сделал это и подумал, что дам вам знать, как я это сделал.

В моем первом представлении (с кнопкой, которая вызывает попытку авторизации) у меня есть стандартный метод индекса, а также тот, который предназначен для сообщения HTTP. Это запускает код для запроса авторизации, если я нажму кнопку авторизации

[HttpPost]
public ActionResult Index()
{
    Flickr.CacheDisabled = true;
    string secret = "sss";
    string apikey = "abc";
    Flickr myFlickr = new Flickr(apikey, secret);

    var flickrFrob = myFlickr.AuthGetFrob();
    string url = myFlickr.AuthCalcUrl(flickrFrob, AuthLevel.Write);
    Response.Redirect(url);
}

Затем у меня есть еще одно действие, которое берет на себя frob.

public ActionResult Authenticated(string frob)
{
    Flickr.CacheDisabled = true;
    string secret = "sss";
    string apikey = "abc";

    Flickr flickr = new Flickr(apikey, secret);
    Auth auth = flickr.AuthGetToken(frob);

    ViewData.Add("frob", frob);
    return View();
}

Это второе действие является расположением обратного вызова на flickr.

Так например; Если бы это действие было в контроллере Home, обратный вызов был бы
www.mysite.com/Home/Authenticated/

Поскольку этот метод действия принимает строку «frob», она будет заполнена сгенерированным кодом.

Чтобы просмотреть это, вы можете просто вывести его из нашего окна просмотра или сохранить его там, где вам нужно и т. д.

person Tony Gayter    schedule 29.07.2012