ASP.NET :flickr PhotosSetMeta问题

时间:2012-03-20 17:17:56

标签: c# asp.net flickr

我有一个奇怪的问题。我用Flickr API编写了代码,用于更改照片标题和说明。现在我的问题是代码仅在我调试它时才有效(单步)。

如果我在没有调试的情况下运行它会抛出Invalid frob (108)

那个dosnt对我有意义。

这是代码:

flicker = new Flickr(key, secret);
            FlickrNet.Cache.CacheDisabled = true;

            string frob = flicker.AuthGetFrob();
            string flickrUrl = flicker.AuthCalcUrl(frob, AuthLevel.Write);

            ProcessStartInfo procInfo =new ProcessStartInfo(flickrUrl);
            Process.Start(procInfo);

            Auth auth = new Auth();
            auth.Permissions = AuthLevel.Write;
            auth = flicker.AuthGetToken(frob);

            flicker.PhotosSetMeta("6959366981", "Title:KODO", "Descreption:SPOPOIDO");

代码连接到flickr,将用户重定向到flickr页面,该页面要求用户接受对其个人资料进行更改,如果他们接受,则会更改其中一个照片的标题和说明。

我认为问题在于,在调试模式下,连接保持打开状态,因此每个事情都在一次调用中发生,但在正常模式下,它会在用户尝试执行的同时执行flickr auth = flicker.AuthGetToken(frob);接受“在flickr页面上。

我的问题是:

  • 我可以通过编程方式进行身份验证,所以我不必每次都重新编辑页面吗?

  • 有没有办法在执行代码时保持连接打开? (我甚至不确定这是可能的)

1 个答案:

答案 0 :(得分:0)

好吧,我让这个工作!

1.您需要检查闪烁的应用是否属于网络应用。 2.你需要确保你有一个回调网址。

如果这两个都正确则需要创建2个aspx文件:

1:用于身份验证:

flicker = new Flickr(key, secret);
        FlickrNet.Cache.CacheDisabled = true;

        string flickrUrl = flicker.AuthCalcWebUrl(AuthLevel.Write);
        Response.Redirect(flickrUrl);
        //(the user will be ask to accept making changes on his account once if every thing is working)

2.发送(用户将在第一部分之后重定向此页面)

flicker = new Flickr(key, secret);
        FlickrNet.Cache.CacheDisabled = true;
        frob = Request.QueryString["frob"];

        Auth auth = flicker.AuthGetToken(frob);

        auth.Permissions = AuthLevel.Write;

        flicker.PhotosSetMeta("6959366981",TextBox1.Text, TextBox2.Text);
   // PhotosSetMeta(img_id,title,descreption) this function change 1 image (by id) its title and descreption

如果您在代码或mybee中看到任何错误,请更好地执行此操作,请按照您的方式进行编辑(对于asp.net来说,这是一个新手)。

如果此dosnt适用于您,请检查:http://flickrnet.codeplex.com/discussions 我在那里得到了帮助。

我希望somone会发现这个usfule:)