我有一个奇怪的问题。我用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页面上。
我的问题是:
我可以通过编程方式进行身份验证,所以我不必每次都重新编辑页面吗?
有没有办法在执行代码时保持连接打开? (我甚至不确定这是可能的)
答案 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:)