2012-02-21 6 views
0

У меня проблема с именем пользователя PhotobucketNet (мне нужно войти в систему, чтобы я мог загрузить изображение с жесткого диска на его учетную запись Photobucket).PhotobucketNet photo upload

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

Если я называю RequestUserToken(), это произойдет сразу, так что я буду получать пользователь аварии причина не вошли в систему, и нет ни одного события, который был поднят после того, как пользователь входит в систему. Есть ли какая-то переменная (bool или что-то еще), который я могу проверить, чтобы узнать, зарегистрирован ли пользователь - возможно, поставить его в цикле с таймером? Также есть ли способ узнать, был ли пользователь включен в систему? Я знаю, что таймер не является хорошим решением, поэтому, если у кого-то есть что-то лучше, как идея, я открыт для любых предложений ...

ответ

0

Я столкнулся с той же проблемой сегодня, и я нашел ваше сообщение в то время как Я искал решения. Вот как мне удалось решить проблему:

Во-первых, я получил «URL-адрес входа пользователя» и передал его форме с помощью элемента управления веб-браузера под названием «Вход».

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

Далее, я получил URL с этой страницы,

enter image description here

, который страница после входа в систему. Если URL-адрес веб-браузера - это эта страница, я попросил класс фотообъекта (в моем случае 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 
     } 
    } 
} 

Теперь вы просто сохранить маркер и использовать его.