【问题标题】:Integrate yahoo, Google and openid through android and iPhone application?通过 android 和 iPhone 应用程序集成 yahoo、Google 和 openid?
【发布时间】:2011-09-14 20:11:34
【问题描述】:

我正在为 iPhone 和 android 设计一个应用程序,我必须在其中集成 facebook、twitter、yahoo、gmail、openId。我已经集成了 facebook 和 twitter,但是如何使用 yahoo、gmail 和 openId?如何通过app登录并获取用户信息?

请告诉我一种实现方法。任何教程都可能有所帮助。

谢谢。

【问题讨论】:

  • @trgraglia 和男人一样工作......
  • @Panache 有你找到任何关于这个的解决方案..如何在 android 应用程序中使用 yahoo 登录......
  • @J_K 是的,我将 oauth 用于 yahoo 和 gmail 集成。我会尽快发布一些示例代码。我现在正在旅行,所以...
  • @Panachethanx 你的回复...我会等待你的帖子..
  • @Panache yahoo 示例不起作用...对我来说。

标签: iphone android openid yahoo


【解决方案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);

解析响应并享受 :)

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多