2010-03-28 53 views
3

我的問題是我試圖從雅虎獲取請求令牌時出現錯誤。該錯誤說我缺少oauth_callback參數,是的,我錯過了,因爲我不需要它。我讀過,如果我不想使用它(桌面應用程序),我需要將它設置爲「oob」值。我這樣做,但無濟於事。如果我將它設置爲null,則會發生同樣的情況。即時通訊使用OAuth的Java:http://oauth.googlecode.com/svn/code/java/core/OAuth java實現,oauth_callback丟失

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

回答

1

您是否嘗試過使用Scribe

我也有OAuth java庫的問題,所以我開發了那個。這是非常多的交叉提供者,並且比你使用的更好的文檔。

如果它不與雅虎工作,你可以輕鬆地擴展它創建自己的Provider

希望幫助!

0

我沒有使用過這個庫,但它看起來沒有正確處理回調URL。由於OAuth 1.0a(http://oauth.net/advisories/2009-1/http://oauth.net/core/1.0a/),回調URL需要在第一次調用中發送以獲取請求令牌(不在客戶端調用中授權它),並且似乎該庫尚未更新做到這一點(至少從代碼看)。我假設雅虎要求參數在那裏。

1

有在java OAuthMassage類的問題,我通過向addRequiredParameters方法thie線 解決它,如果(pMap.get(OAuth.OAUTH_CALLBACK)== NULL){ addParameter(OAuth.OAUTH_CALLBACK,consumer.callbackURL ); } 如果你仍然有這個問題,我可以幫助你:[email protected]