flickr .net api получить фроб с MVC - PullRequest
0 голосов
/ 31 января 2012

Я использую Asp.net MVC и пытаюсь использовать API flickr через: 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, как мне сделать перенаправление, чтобы затем получить фроб?

1 Ответ

3 голосов
/ 29 июля 2012

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

В моем первом представлении (с кнопкой, которая вызывает попытку авторизации) у меня есть стандартный метод индекса, а также метод для 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);
}

Тогда у меня есть еще одно действие, которое происходит в лягушке.

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', она будет заполнена сгенерированным кодом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...