2011-08-05 33 views
2

我想在我的應用程序中集成雅虎。我想,未能檢索雅虎集成在android中的請求令牌?

private static final String YAHOO_CALLBACK_URI = "MyApp://oauth"; 
public static final String YAHOO_REQUEST_TOKEN_URL = "http://api.login.yahoo.com/oauth/request_token";//api.login.yahoo.com 
public static final String YAHOO_ACCESS_TOKEN_URL = "http://api.login.yahoo.com/oauth/access_token"; 
public static final String YAHOO_AUTHORIZE_URL = "http://api.login.yahoo.com/authorize"; 


CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(YAHOO_CONSUMER_KEY, YAHOO_CONSUMER_SERECT_KEY); 
    OAuthProvider provider = new CommonsHttpOAuthProvider(YAHOO_REQUEST_TOKEN_URL, YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTHORIZE_URL); 
    provider.setOAuth10a(true); 
    try { 
     String authUrl = provider.retrieveRequestToken(consumer, YAHOO_CALLBACK_URI);// Can I pass Null for callback url. 
     System.out.println("AuthURL = " + authUrl); 
    } catch (OAuthMessageSignerException e) { 
     e.printStackTrace(); 
    } catch (OAuthNotAuthorizedException e) { 
     e.printStackTrace(); 
    } catch (OAuthExpectationFailedException e) { 
     e.printStackTrace(); 
    } catch (OAuthCommunicationException e) { 
     e.printStackTrace(); 
    } 

越來越

oauth.signpost.exception.OAuthCommunicationException:通信與服務提供商的失敗:服務提供商迴應錯誤:404(未找到)

爲什麼我們不能檢索請求令牌。

+0

嗨,我得到一個類似的錯誤,你解決了這個問題? – Kavitha

+0

@ KC203不,我仍然在嘗試... ...與404錯誤卡住.... – Panache

+0

感謝您的答覆,我已經看到了幾個論壇,每個人似乎都有這個問題,我懷疑現在是否也有可能。無論如何,讓我知道,如果你成功整合yahoo – Kavitha

回答

3
  1. 確保您在雅虎的應用程序已註冊爲基於Web的應用程序。當您註冊爲基於Web的應用程序時,請提供您選擇的有效應用程序URL和應用程序域(兩者應該是相同的域),但尚未被其他人使用。例如,我擁有我擁有的網站的網址。這也將用作消費者的回調網址。
  2. 而不是調用「MyApp:// oauth」,給一個有效的http回調url(與您用來註冊該應用程序的那個相同)。有了這些,上面的代碼應該可以工作。
  3. 打開一個新的Webview並調用authUrl。一旦你的應用程序被授權,通過覆蓋「onPageStarted」方法攔截對應用程序url的調用。在那裏,通過啓動指向「MyApp:// oauth」的新意向對您的應用程序進行回調。

請讓我知道如果任何obove步驟混淆你 - 我很樂意提供幫助。

+0

感謝您的回覆。我有一些問題,1.爲什麼我們必須註冊爲基於Web的應用程序,我們是否可以選擇基於客戶端的應用程序? 2.我嘗試使用基於Web的應用程序URL和應用程序域,但沒有得到提及的內容。 PLZ你會發布一些相同的步驟...謝謝先生。 – Panache

+1

我編輯了我的答案,以包含您需要給予的應用程序url和應用程序域。您可以提供基於桌面的,但在這種情況下,在驗證之後,用戶必須複製代碼,並在驗證完成後將其粘貼到應用程序中。如果您希望在沒有任何複製粘貼的情況下實現無縫集成,則需要遵循基於Web的身份驗證模型。請讓我知道,如果你有任何問題。 –

+0

你可以發佈一些工作代碼嗎?這將幫助我獲得工作。 – Panache

1

我已經按照上面提到的3#poits,並能夠回電給應用程序。整個問題始於YAHOO OAUTH Process。現在,雅虎並沒有採用自定義回撥郵件,它必須是一個有效的http url。 n 有幾個問題我有我自己解決的問題,比如有一個CUSTOMi對話框,可以用來調用類似於FB對話框的Web視圖YAHOO Auth URL。

感謝您的