0

我在 PhotobucketNet 用户登录时遇到问题(我需要用户登录,以便我可以将图片从 HDD 上传到他的 Photobucket 帐户)。

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

如果我调用 RequestUserToken() 它会立即发生,所以我会因为用户没有登录而崩溃,并且在用户登录后没有引发任何事件。是否有一些变量(布尔或其他)我可以检查用户是否登录 - 也许将其放入带有计时器的循环中?他们也是一种知道用户是否取消登录的方法吗?我知道计时器不是一个好的解决方案,所以如果有人有更好的想法,我愿意接受任何建议......

4

1 回答 1

0

我今天遇到了同样的问题,我在寻找解决方案时发现了你的帖子。这是我设法解决问题的方法:

首先,我得到了“用户登录网址”并将其传递给带有 Web 浏览器控件的表单,称为“登录”。

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

接下来,我从这个页面得到了 url,

在此处输入图像描述

这是登录后的页面。如果 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
       }
    }
}

现在您只需保存令牌并使用它。

于 2012-12-01T19:46:44.830 回答