2011-06-14 59 views
2

我正在爲iPhone和android設計一個應用程序,我必須在其中集成facebook,twitter,yahoo,gmail,openId。我已經整合了Facebook和Twitter,但如何去雅虎,Gmail和OpenId?如何通過應用程序登錄並獲取用戶信息?通過Android和iPhone應用程序集成雅虎,谷歌和openid嗎?

請給我一種實現這一點的方法。任何教程可能有幫助。

謝謝。

+0

@trgraglia在相同的工作,以及男人... – Panache 2011-06-14 16:06:25

+0

@Panache已經ü找到這個..how在Android應用雅虎登錄的任何解決方案。 .. – 2012-10-10 11:16:15

+0

@J_K是的,我用雅虎和Gmail集成oauth。我會盡快發佈一些示例代碼。我現在在旅行,所以... – Panache 2012-10-11 13:48:39

回答

1
String YAHOO_RESOURCE_URL = "http://social.yahooapis.com/v1/me/guid/profile?fomat=xml"; 
    String CALLBACK_URL = "oauth://testApp"; 
    String YAHOO_REQUEST_TOKEN_URL = "https://api.login.yahoo.com/oauth/v2/get_request_token"; 
    String YAHOO_ACCESS_TOKEN_URL = "https://api.login.yahoo.com/oauth/v2/get_token"; 
    String YAHOO_AUTHORIZE_URL = "https://api.login.yahoo.com/oauth/v2/request_auth"; 

    // Oauth consumer and provider. 
    CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(Constants.YAHOO_CONSUMER_KEY, Constants.YAHOO_CONSUMER_SERECT_KEY); 
    OAuthProvider provider = new CommonsHttpOAuthProvider(YAHOO_REQUEST_TOKEN_URL , YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTHORIZE_URL); 
    provider.setOAuth10a(true); 

    // First retrive request token. 
    String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL); 
    String yahooToken = consumer.getToken(); 
    String yahooTokenSecret = consumer.getTokenSecret(); 

    Open the authUrl in android web browser, this will launch login page, then after login will ask for permissions, accepting the permissions will return in your app using callback url. 

    Now, 
    In onResume 

    Uri uri = this.getIntent().getData(); 
    if (uri != null && uri.toString().startsWith(CALLBACK_URL)) { 

    String oauthToken = uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_TOKEN); 
    String oauthVerifier = uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER); 

    consumer = new CommonsHttpOAuthConsumer(Constants.YAHOO_CONSUMER_KEY, Constants.YAHOO_CONSUMER_SERECT_KEY); 
    consumer.setTokenWithSecret(yahooToken, yahooTokenSecret); 

    provider = new CommonsHttpOAuthProvider(YAHOO_REQUEST_TOKEN_URL, YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTHORIZE_URL); 
    provider.setOAuth10a(true); 

    // Now retrive access token 
    provider.retrieveAccessToken(consumer, oauthVerifier); 
    String token = consumer.getToken(); 
    String tokenSecret = consumer.getTokenSecret(); 
    consumer.setTokenWithSecret(token, tokenSecret); 

    // Get the GUID from this. 
    DefaultHttpClient httpClient = new DefaultHttpClient(); 
    HttpGet request = new HttpGet("http://social.yahooapis.com/v1/me/guid?format=json"); 
    consumer.sign(request); 
    HttpResponse response = httpClient.execute(request); 

解析響應得到GUID。

// Now use the GUID to get profile info. 
    DefaultHttpClient httpClient = new DefaultHttpClient(); 
    String strUrl = "http://social.yahooapis.com/v1/user/"+ strGUID +"/profile?format=json"; 
    HttpGet request = new HttpGet(strUrl); 
    consumer.sign(request); 
    HttpResponse response = httpClient.execute(request); 

解析響應和NJOY :)

相關問題