2

Magento 서버에서 데이터에 액세스하려면 signpost for OAuth을 사용하고 있습니다. 나는 동일한 튜토리얼을 여러 편 읽었으며 사용자가 자신의 자격 증명을 입력 할 수 있도록 브라우저를 여는 시점까지 도달합니다. 그러나, 내 요구 사항에 따라 이 부분을 자동화해야합니다.브라우저를 열지 않고 푯말 OAuth를 사용하여 AccessToken 가져 오기

따라서 사용자는 브라우저 페이지를 가져 오지 않아야합니다. 나는이 설정을 서버 측 (Magento)에서 수행했는데, URL을 명중하여 콜백 페이지로 돌아왔다. 안드로이드에서 내 프로그램을 통해 동일하게하고 싶습니다.

나는

consumer = new CommonsHttpOAuthConsumer(KEY, Secret); 
provider = new CommonsHttpOAuthProvider(OAUTH_INIT_URL,ACCESS_TOKEN_URL, AUTHORIZE_URL);     
try { 
    provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND); 
    Log.d("Tokens" , consumer.getToken() + " -- " + consumer.getTokenSecret()); 
    } 

, 아래 시도하고 난 요청 토큰을 얻는다. 그러나 나는 다음 단계를 우회하는 법을 모른다. 내가 직접 AccessToken (나를 바보) provider.retrieveAccessToken(consumer, "myCallback://callback");하지만 행운을 접근 시도, 내가 지난 3 개월에서이 붙어 이대로가 어떤 도움을 주셔서 감사합니다 정말 것이다

oauth.signpost.exception.OAuthNotAuthorizedException: Authorization failed (server replied with a 401). This can happen if the consumer key was not correct or the signatures did not match. 

에 끝납니다. 더 이상 데이터를 제공해야하는지 알려주세요.

+0

안녕하세요, 당신은 이것에 대한 해결책을 찾았습니까 ?? 나는 또한 똑같은 문제에 직면하고있다. 나는 webservice에 대한 oauth를 사용해야하고 브라우저를 열지 않으려 고합니다. –

+0

불행히도. Magento의 Rest API를 사용하여 종료되었습니다. 우리가 도움이되는지 보자. 나는 또한 나의 마지막 일을 점검 할 것이다. –

+0

사용자가 브라우저 페이지로 이동하지 않으면 어떻게 magento 서버에 자신의 자격 증명을 제공합니까? – Okas

답변

1
  OAuthConsumer consumer = new DefaultOAuthConsumer(myconsumerkey, 
       mysecretkey); 

     HttpURLConnection request; 
     URL baseUrl = new URL(myurl); 
     request = (HttpURLConnection) baseUrl.openConnection(); 
     consumer.sign(request); 

     InputStream in = new BufferedInputStream(
        request.getInputStream()); 
      BufferedReader reader = new BufferedReader(
        new InputStreamReader(in)); 
      StringBuilder out = new StringBuilder(); 
      String line = ""; 
      while ((line = reader.readLine()) != null) { 
       out.append(line); 
      } 
     String serverResponse = out.toString();