Yahoo验证并获取个人资料详细信息iOS

萨加尔·科塔里(Sagar R.Kothari)

我在这里列出了我遵循的Yahoo Integration步骤

  • 第1步。我去了http://developer.yahoo.com/social/sdk/objectivec/
  • 步骤2。从此处下载整个框架-http: //github.com/yahoo/yos-social-objc
  • 步骤3.我确实将该框架拖放到了我的项目中。
  • 步骤4.fno-objc-arc雅虎框架文件的启用标志
  • 步骤5.我#import "YOSSocial.h"在viewController的头文件中进行了操作。
  • 第6步。鉴于确实加载了代码,我放置了代码块1来创建会话对象。
  • 步骤7.单击按钮,我调用代码块2
  • 步骤8.在AppDelegate.m中,我已将方法实现为代码块3
  • 步骤9.我收到oauth_tokenoauth_verifier重定向。

代码块1

 - (void)viewDidLoad {
    [super viewDidLoad];
    self.session = [YOSSession sessionWithConsumerKey:@"ConsumerKeyHere"
                                           andConsumerSecret:@"ConsumerSecretKeyHere"
                                            andApplicationId:@"AppKey"];
    BOOL hasSession = [self.session resumeSession];
    if(hasSession == FALSE) {
        // custom call back URL which will redirect to our-app.
        // 10.0.0.76/iOS/callback.php redirects 
        // to com.mymobileapps.currentApp.yahoo
        [self.session 
           sendUserToAuthorizationWithCallbackUrl:
           @"http://10.0.0.76/iOS/callback.php"];
    } else {
        [self sendRequests];
    }
}

代码块2

- (void)sendRequests {
    // initialize a user request for the logged-in user
    YOSUserRequest *request = [YOSUserRequest requestWithSession:self.session];

    // fetch the user's profile data
    [request fetchProfileWithDelegate:self];
}

- (void)requestDidFinishLoading:(YOSResponseData *)data {
    // parse the response text string into a dictionary
    NSDictionary *rspData = [NSJSONSerialization JSONObjectWithData:[data.responseText dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
    NSDictionary *profileData = [rspData objectForKey:@"profile"];

    // format a string using the nickname object from the profile.
    NSString *welcomeText = [NSString stringWithFormat:@"Hey %@ %@!",
                             [profileData objectForKey:@"givenName"],
                             [profileData objectForKey:@"familyName"]];
    NSLog(@"welcometext is %@",welcomeText);
    self.lblProfile.text = welcomeText;
}

代码块3

- (BOOL)application: (UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {
    NSString *str = [[url description] stringByReplacingOccurrencesOfString:@"com.mymobileapps.currentApp.yahoo://oauth-response?oauth_token=" withString:@""];
    NSArray *ar = [str componentsSeparatedByString:@"&oauth_verifier="];
    NSLog(@"oauth_token is %@",[ar objectAtIndex:0]);
    NSLog(@"oauth_verifier is %@",[ar objectAtIndex:1]);
    // How my session will get updated now with valid authentication done?
    return YES;
}

我按照此处描述的每个步骤进行操作-http: //developer.yahoo.com/social/sdk/objectivec/,并且还按照此处所述实施了重定向-身份验证后如何从Yahoo重定向到我的IOS应用程序?

问题如下。我仍然无法获取用户配置文件的详细信息,例如性别,出生日期等。也就是说-从代码块2中,我收到的数据为nil。

我的代码中缺少什么来检索用户资料的数据?

其他参考。

- (BOOL)application: (UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {
    return [GPPURLHandler handleURL:url
                  sourceApplication:sourceApplication
                         annotation:annotation];
}

上面的代码说明了Google+框架如何处理重定向以及如何通过本地会话进行管理。对于Yahoo,我找不到任何有助于更新移动应用本地会话的详细信息。

编辑:
如果无法通过Yahoo OAuth,如何从Yahoo获取基本的个人资料详细信息(例如-性别,出生日期,电子邮件ID,姓名等)?

萨加尔·科塔里(Sagar R.Kothari)

这是解决方案。

注意:您将需要一个中间服务器。

  • 步骤01.下载PHP yahoo框架http://github.com/yahoo/yos-social-php
  • 步骤02.启动WAMP / XAMPP服务器。
  • 步骤03.获取URL
    • 例子- http://10.0.0.76/iOS/yos-social-php-master/sample/sampleapp.php
  • 步骤04.回到XCode项目。
  • 步骤05.打开XIB,为Yahoo放置一个按钮并连接IBAction方法。
  • 步骤06.在IBAction方法中,导航到从iOS应用获取的URL到URL。参见代码块1
  • 步骤07.在AppDelegate.m中添加方法以处理从服务器到您的移动应用程序的重定向。参见代码块2
  • 步骤08。确保您的应用程序能够处理重定向。打开你的项目的info.plist源代码和请确保您有有效的URL typesURL identifierURL Schemes代码块3所示
  • 步骤09。现在,您的移动应用程序已准备好从服务器重定向。
  • 步骤10.打开yourLocalServer/iOS/yos-social-php-master/sample/sampleapp.php文件。https://github.com/yahoo/yos-social-php/blob/master/sample/sampleapp.php
  • 步骤11,将代码从97注释为106。
  • 步骤12:按照代码块4的指示放置代码
  • 步骤13.运行您的项目,在iOS App中单击按钮。
  • 步骤14.应用程序将导航到您的网站页面。网站页面将进行身份验证并获取配置文件详细信息。
  • 第15步。身份验证完成后,网站页面将重定向回您的移动应用,并提供以下详细信息-性别,全名,出生日期,guid,个人资料图片网址等。

概要

移动应用导航至服务器->服务器通过OAuth-php管理身份验证。身份验证后,服务器会检索配置文件详细信息,并且服务器会指示Safari导航回-your-mobile-App。您的移动应用在代码块中获取所有详细信息

代码块1

- (IBAction)connectYahoo:(id)sender {
      [[UIApplication sharedApplication] 
           openURL:[NSURL URLWithString:
           @"http://yourLocalServer/iOS/yos-social-php-master/sample/sampleapp.php"
      ]];
}

代码块2

- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
   sourceApplication:(NSString *)sourceApplication
     annotation:(id)annotation {

    if([[url scheme] isEqualToString:@"com.yourcompany.app.fsq"]) {
        return [self.obj_LoginHomeVCtr.foursquare handleOpenURL:url];
    } else if([[url scheme] isEqualToString:@"com.yourcompany.app.googleplus"]){
        return [GPPURLHandler handleURL:url
                  sourceApplication:sourceApplication
                         annotation:annotation];

    }else if([[url scheme] isEqualToString:@"fb188315544652080"]){
        return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                    fallbackHandler:^(FBAppCall *call) {
                        NSLog(@"In fallback handler");
                    }];
    } else if ([[url scheme] isEqualToString:@"com.yourcompany.app.yahoo"]){
        STLog(@"URL is %@",url);
        return YES;
    }
    return YES;
}

代码块3

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>com.yourcompany.app.yahoo</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>com.yourcompany.app.yahoo</string>
        </array>
    </dict>
</array>

代码块4

  else if($hasSession && $profile) {
      $string = "com.yourcompany.app.yahoo://response?birthdate=" . $profile->birthdate . "&familyName=" . $profile->familyName. " " . $profile->givenName . "&gender=" . $profile->gender . "&guid=" . $profile->guid . "&image=" . $profile->image->imageUrl;
      echo '<meta http-equiv="Refresh" content="1;URL='. $string .'">';
  }
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yahoo验证并获取个人资料详细信息iOS

来自分类Dev

在iOS中从Twitter获取用户个人资料详细信息(尤其是电子邮件地址)

来自分类Dev

在iOS中从Twitter获取用户个人资料详细信息(尤其是电子邮件地址)

来自分类Dev

如何根据ID查看个人资料详细信息?

来自分类Dev

使用SocialAuth API显示个人资料详细信息

来自分类Dev

Upwork API公开个人资料详细信息

来自分类Dev

在python中使用Api获取其他linkedin用户的个人资料详细信息

来自分类Dev

无法在我的API instagram PHP上获取具有隐私权的用户的个人资料详细信息

来自分类Dev

如何在流星中获取其他用户的个人资料详细信息

来自分类Dev

用户个人资料详细信息 API 中未获取用户个人资料链接,以前一些个人资料链接已损坏,但现在没有响应

来自分类Dev

Silverstripe:成员个人资料-更新有关Frontend的详细信息

来自分类Dev

如何在Laravel中让具有特定角色的用户及其个人资料详细信息

来自分类Dev

如何使用Zend Gdata YouTube获得视频评论的用户个人资料详细信息?

来自分类Dev

如果用户在登录后更改了他的 facebook 个人资料详细信息,如何在我的应用程序中更新 facebook 个人资料?

来自分类Dev

将用户个人资料表与登录详细信息表分开是否有意义

来自分类Dev

其他用户如何在 octobercms 中查看用户的个人资料详细信息?

来自分类Dev

验证Google令牌真实性时未获取所有个人资料信息

来自分类Dev

试图在C#中获取Twitter个人资料信息

来自分类Dev

Facebook Android SDK 4.0.0未获取个人资料信息

来自分类Dev

如何获取个人资料信息Google照片库API

来自分类Dev

Google OAuth2无法获取个人资料信息

来自分类Dev

无法通过API获取松弛的用户个人资料信息

来自分类Dev

通过Android App在Google +上获取个人资料信息

来自分类Dev

试图在C#中获取Twitter个人资料信息

来自分类Dev

在不同的活动中获取 Facebook 个人资料信息

来自分类Dev

如何在iOS中获取Twitter个人资料图片?

来自分类Dev

iOS Facebook SDK获取个人资料封面图片

来自分类Dev

无法在ios中获取用户个人资料照片

来自分类Dev

获取Facebook API个人资料图片ios Swift

Related 相关文章

  1. 1

    Yahoo验证并获取个人资料详细信息iOS

  2. 2

    在iOS中从Twitter获取用户个人资料详细信息(尤其是电子邮件地址)

  3. 3

    在iOS中从Twitter获取用户个人资料详细信息(尤其是电子邮件地址)

  4. 4

    如何根据ID查看个人资料详细信息?

  5. 5

    使用SocialAuth API显示个人资料详细信息

  6. 6

    Upwork API公开个人资料详细信息

  7. 7

    在python中使用Api获取其他linkedin用户的个人资料详细信息

  8. 8

    无法在我的API instagram PHP上获取具有隐私权的用户的个人资料详细信息

  9. 9

    如何在流星中获取其他用户的个人资料详细信息

  10. 10

    用户个人资料详细信息 API 中未获取用户个人资料链接,以前一些个人资料链接已损坏,但现在没有响应

  11. 11

    Silverstripe:成员个人资料-更新有关Frontend的详细信息

  12. 12

    如何在Laravel中让具有特定角色的用户及其个人资料详细信息

  13. 13

    如何使用Zend Gdata YouTube获得视频评论的用户个人资料详细信息?

  14. 14

    如果用户在登录后更改了他的 facebook 个人资料详细信息,如何在我的应用程序中更新 facebook 个人资料?

  15. 15

    将用户个人资料表与登录详细信息表分开是否有意义

  16. 16

    其他用户如何在 octobercms 中查看用户的个人资料详细信息?

  17. 17

    验证Google令牌真实性时未获取所有个人资料信息

  18. 18

    试图在C#中获取Twitter个人资料信息

  19. 19

    Facebook Android SDK 4.0.0未获取个人资料信息

  20. 20

    如何获取个人资料信息Google照片库API

  21. 21

    Google OAuth2无法获取个人资料信息

  22. 22

    无法通过API获取松弛的用户个人资料信息

  23. 23

    通过Android App在Google +上获取个人资料信息

  24. 24

    试图在C#中获取Twitter个人资料信息

  25. 25

    在不同的活动中获取 Facebook 个人资料信息

  26. 26

    如何在iOS中获取Twitter个人资料图片?

  27. 27

    iOS Facebook SDK获取个人资料封面图片

  28. 28

    无法在ios中获取用户个人资料照片

  29. 29

    获取Facebook API个人资料图片ios Swift

热门标签

归档