在不打开浏览器的情况下使用路标OAuth获取AccessToken(两腿OAuth)



我使用signpost for OAuth从Magento服务器访问数据。我已经阅读了关于相同的各种教程,并且我达到了我们打开浏览器以便用户可以输入他的凭据的地步。但是,根据我的要求,我必须将自动化这部分。

因此,用户不应该得到浏览器页面。我在服务器端(Magento)完成了这个设置,在那里我点击URL并返回到回调页面。我想通过我的程序在Android上做同样的事情。

我已经试过了,

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");,但没有运气,它最终在

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.

我真的很感激任何帮助,因为我被困在这个过去的3天。请告诉我是否还需要我提供更多的数据

            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();

相关内容

  • 没有找到相关文章

最新更新