2012-02-21 125 views
0

我有一个PhotobucketNet用户登录问题(我需要用户登录,所以我可以上传一张图片从HDD到他的Photobucket帐户)。PhotobucketNet照片上传

Photobucket photobucket = new Photobucket("myapikey", "myapisecret"); 
photobucket.LaunchUserLogin(); 
// the problem happens here 
photobucket.RequestUserToken(); 

如果我叫RequestUserToken(),它会立即发生,所以我会得到一个崩溃的原因用户没有登录,并且没有一个已经在用户登录后引发的事件。有一些变量(布尔或其他),我可以检查,看看用户是否登录 - 也许把它放在一个循环与计时器? 也是他们的一种方式来知道用户是否取消登录? 我知道计时器不是一个好的解决方案,所以如果任何人有什么更好的想法,我打开任何建议...

回答

0

我今天遇到同样的问题,我发现你的帖子while我正在寻找解决方案。这里是我如何设法解决这个问题:

首先,我得到了“用户登录URL”,并将其传递到一个名为“Login”的Web浏览器控件的表单。

Service=new Photobucket ("mykey", "mysecret"); 
string u=Service.GenerateUserLoginUrl(); 
Login l=new Login (u); 
l.Show(); 

接下来,我从本网页的URL,

enter image description here

这是登录后的页面。如果Web浏览器的URL是那个页面,我问photobucket类(在我的情况下Program.Service),请求令牌。

从登录表单的代码是这样的:

public Login (string url) 
{ 
    InitializeComponent(); 
    webBrowser1.Navigate (url); 
    webBrowser1.DocumentCompleted+=delegate 
    { 
    if (webBrowser1.Url.ToString()=="http://photobucket.com/apilogin/done") 
     { 
      PhotobucketNet.UserToken t=Program.Service.RequestUserToken(); 
      //save the token 
     } 
    } 
} 

现在你只需保存令牌和使用它。