我使用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();