2012-10-13 2 views
0

Windows Phone 에뮬레이터에 Windows 응용 프로그램을 작성하여 DropBox 계정과 통신하고 NuGet 갤러리의 DropNet 패키지를 사용하고 있습니다. 내가 말하는거야DropNet이 설치된 Windows Phone

페이지는 다음과 같습니다

DropNetClient GlobalClient = new DropNetClient("TOKEN", "SECRET", "testUserName", "testPassword"); 

나는 경우 UserToken에서 어떤 일이 일어나는지 확실하지 않다

1 단계) 클라이언트 만들기 : 여기

http://dkdevelopment.net/what-im-doing/dropnet/ 내가 수행 한 단계입니다 userSecret, 하드 코딩 된 사용자 이름과 암호가 될 수 없습니다! URL

var url = GlobalClient.BuildAuthorizeUrl("http://dkdevelopment.net/BoxShotLogin.htm"); 

4 단계) 보관 용 로그인 페이지로 브라우저를 리디렉션을 허가 토큰

GlobalClient.GetTokenAsync((userToken) => 
     { 
      //Dont really need to do anything with userLogin, 
      //DropNet takes care of it for now 
     }, 
     (error) => 
     { 
      Deployment.Current.Dispatcher.BeginInvoke(() => 
      { 
       MessageBox.Show(error.Message); 
      }); 
     }); 

3 단계) 건축을 요청

2 단계). 이 후 DropBox는 로그인 할 수 있지만이 경고를 표시합니다. "앱 연결 요청이 잘못되었습니다."그리고 더 중요한 것은 브라우저가 http://dkdevelopment.net/BoxShotLogin.htm으로 리다이렉트되지 않는다는 것입니다. 이것은 뭔가 잘못되었음을 나타냅니다. 그래도 무슨 생각하는지.

Uri testUri = new Uri(url.ToString()); 
     WebBrowserTask task = new WebBrowserTask(); 
     task.Uri = testUri; 
     task.Show(); 

5 단계) 이것은 작동하지 않습니다. GlobalClient.UserLogin.Token 및 GlobalClient.UserLogin.Secret이 설정되지 않습니다.

GlobalClient.GetAccessTokenAsync((accessToken) => 
     { 
      //Store this token for "remember me" function 
      GlobalClient.UserLogin.Token = accessToken.Token; 
      GlobalClient.UserLogin.Secret = accessToken.Secret; 
     }, 
     (error) => 
     { 
      Deployment.Current.Dispatcher.BeginInvoke(() => 
       { 
        MessageBox.Show(error.Message); 
       }); 
     }); 

누구든지 이것을 고칠 수 있습니다.

감사합니다.

답변

0

문제를 발견했습니다. 2 단계에서는 올바른 권한 부여 URL을 작성하기 위해 요청 토큰을 저장해야하며 해당 요청 토큰을 첫 번째 매개 변수로 전달해야합니다. 그러나 이런 식으로 람다를 저장하려고하면 저장되지 않습니다. 여기에 무슨 문제가 있니? 나는 이것이 내가 람다를 사용하는 방법이라고 생각한다.

GlobalClient.GetTokenAsync((userToken) => 
{ 
    infoTextBlock.Text = userToken.Token; 
    GlobalClient.UserLogin.Token = userToken.Token; 
} 
(error) => 
{ 
}); 

고마워요!

0

문제는 다음 코드입니다 :

UserLogin.Token = userToken.Token; 

가 기본이되는 자격 증명이 요청에 대해 설정된 것을 의미하지 않는다 토큰에 값을 할당. 이것은 다음을 호출 할 때만 수행됩니다.

UserLogin = userToken; 

나에게 묻는다면 클래스 인터페이스에서 디자인이 잘못되었습니다. UserLogin.Token = Something 및 UserLogin = NewLogin (근본적인 비즈니스 규칙과 관련하여) 호출간에 차이가 없어야합니다.