【问题标题】:flickr .net api get frob with MVCflickr .net api 与 MVC 一起使用
【发布时间】:2012-07-30 01:30:28
【问题描述】:

我正在使用 Asp.net MVC 并尝试通过以下方式使用 flickr api:http://flickrnet.codeplex.com/

我查看了文档,但我不知道如何使它适用于 MVC。参见文档中的 sn-p:

网络认证?怎么不一样?

对于基于 Web 的身份验证,您必须在编辑中指定 您的 API 密钥的配置页面 将用户重定向到之后的页面 他们已经验证了您的应用程序。它称为回调 URL。 使用基于 Web 时,您也不需要创建 Frob 身份验证。

您可以使用 Flickr.AuthCalcWebUrl 方法生成一个 URL 到 将用户重定向到。

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

然后在上面Callback 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);

我已将 AuthCalcWebUrl 返回的 url 粘贴到我的应用程序设置页面中的 callbackurl 中。

问题是在 MVC 中我如何进行重定向以获取 frob?

【问题讨论】:

    标签: c# asp.net-mvc flickr


    【解决方案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”,因此将填充生成的代码。

    要查看此内容,您可以从我们的 viewbag 中输出或将其存储在您需要的任何地方等。

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 2012-06-02
      • 2016-11-13
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多