Java-реализация OAuth, отсутствует oauth_callback - PullRequest
3 голосов
/ 29 марта 2010

Моя проблема в том, что я получаю ошибку при попытке получить токен запроса от Yahoo. Ошибка говорит, что я пропускаю параметр oauth_callback и да, я скучаю по нему, потому что он мне не нужен. Я прочитал, что мне нужно установить значение «oob», если я не хочу его использовать (приложение для ПК). И я сделал это, но безрезультатно. Если я установлю его на ноль, произойдет то же самое. Я использую OAuth для Java: http://oauth.googlecode.com/svn/code/java/core/

OAuthServiceProvider serviceProvider = new OAuthServiceProvider("https://api.login.yahoo.com/oauth/v2/get_request_token",
                                                                        "https://api.login.yahoo.com/oauth/v2/request_auth",
                                                                        "https://api.login.yahoo.com/oauth/v2/get_token");
OAuthConsumer consumer = new OAuthConsumer("oob", consumerKey, consumerSecret, serviceProvider);
OAuthAccessor accessor = new OAuthAccessor(consumer);
OAuthClient client = new OAuthClient(new HttpClient4());
OAuthMessage response = client.getRequestTokenResponse(accessor, OAuthMessage.POST, null);
System.out.println(response.getBodyAsStream());

Ответы [ 4 ]

1 голос
/ 26 июня 2010

есть проблема в классе Java OAuthMassage, я решил ее, добавив в метод addRequiredParameters строку if (pMap.get (OAuth.OAUTH_CALLBACK) == null) { addParameter (OAuth.OAUTH_CALLBACK, consumer.callbackURL); } если у вас все еще есть эта проблема, я могу помочь вам: rbouadjenek@gmail.com

1 голос
/ 29 марта 2010

Вы пробовали использовать Писец ?

У меня также были проблемы с Java-библиотеками OAuth, поэтому я разработал эту. Это в значительной степени кросс-провайдер и лучше задокументировано, чем тот, который вы используете.

Если он не работает с Yahoo, вы можете легко расширить его, создав собственный Провайдер

Надеюсь, это поможет!

0 голосов
/ 12 июля 2010

Не уверен, была ли когда-либо решена исходная проблема, но хотел указать на новый Java OAuth SDK, который Yahoo выпустил на прошлой неделе:
http://developer.yahoo.net/blog/archives/2010/07/yos_sdk_for_java.html

Разработчики, пытающиеся получить доступ к службам Yahoo через OAuth с Java, могут найти части этого SDK полезными.

0 голосов
/ 04 мая 2010

Я не использовал эту библиотеку, но, похоже, она неправильно обрабатывает URL-адрес обратного вызова. Начиная с OAuth 1.0a (http://oauth.net/advisories/2009-1/ и http://oauth.net/core/1.0a/),, URL-адрес обратного вызова необходимо отправить при первом вызове, чтобы получить токен запроса (а не в вызове на стороне клиента для его авторизации), и кажется, что эта библиотека не была обновлена ​​для этого (по крайней мере, глядя на код). Я предполагаю, что Yahoo требует, чтобы параметр был там.

...