• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何获取正在使用 twitter SLRequest 登录的用户信息?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 07:00:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想在 Twitter 中使用 SLRequest 获取用户个人资料信息?

目前我正在编写代码

  NSURL *url = [NSURL URLWithString"https://api.twitter.com/1.1/users/show.json"];
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys"ali",@"screen_name",nil];

    account = [[ACAccountStore alloc] init];
    ACAccountType *twitterAccountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    NSArray *twitterAccounts = [account accountsWithAccountType:twitterAccountType];

    // Runing on iOS 6
    if ([LoginViewController isTwitterAvailable])
    {
        NSLog(@"In the IFF...... ");
        [account requestAccessToAccountsWithType:twitterAccountType options:NULL completion:^(BOOL granted, NSError *error)
         {
             NSLog(@"in body ");

             if (granted)
             {
                 NSLog(@"in granted ..");


                 SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:params];

                 [request setAccount:[twitterAccounts lastObject]];

                 dispatch_async(dispatch_get_main_queue(), ^
                                {

                                    [NSURLConnection sendAsynchronousRequest:request.preparedURLRequest queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response1, NSData *data, NSError *error)
                                     {
                                         dispatch_async(dispatch_get_main_queue(), ^
                                                        {
                                                            if (data)
                                                            {
                                                                //NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] ;


                                                                //NSLog(@"data:%@",string);

                                                                NSError* error;


                                                                NSDictionary* dicUser = [NSJSONSerialization
                                                                                      JSONObjectWithData:data

                                                                                      options:kNilOptions 
                                                                                      error:&error];

它返回整个信息,而不是个人资料信息,

如何获取登录用户的个人资料?

谢谢



Best Answer-推荐答案


尝试遵循来自实时项目之一的代码,您可以根据现有结构进行修改。如果有任何问题,请告诉我。

  _accountStore = [[ACAccountStore alloc] init]; //Declare accountStore as property and initialize
  ACAccountType *accountType = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    [_accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error){
        if (granted){
            NSArray *accounts = [_accountStore accountsWithAccountType:accountType];
            if (accounts.count > 0){
                ACAccount *twitterAccount = [accounts lastObject];
                NSDictionary *dict1 = [twitterAccount dictionaryWithValuesForKeys:[NSArray arrayWithObject"properties"]];
                NSDictionary *properties = dict1[@"properties"];
                NSDictionary *returnDict = @{@"TwitterID":properties[@"user_id"],@"UserName":twitterAccount.username};
                NSLog(@"rofile details->%@",properties);
            }else{
                NSMutableDictionary* details = [NSMutableDictionary dictionary];
                [details setValue:kTwitterErrorMsg forKey:NSLocalizedDescriptionKey];
                error = [NSError errorWithDomain"Domain" code:error.code userInfo:details];
                NSLog(@"Error occured->%@",error.localizedDescription);
            }
        } else {
            NSMutableDictionary* details = [NSMutableDictionary dictionary];
            if(error.code == ACErrorAccountNotFound){
                [details setValue:kTwitterErrorMsg forKey:NSLocalizedDescriptionKey];
            }else if(error.code == ACErrorPermissionDenied || error.code == ACErrorAccessDeniedByProtectionPolicy) {
                [details setValue:kTwitterAccessDeniedMsg forKey:NSLocalizedDescriptionKey];
            }else {
                [details setValue:kTwitterErrorMsg forKey:NSLocalizedDescriptionKey];
            }
            error = [NSError errorWithDomain"Domain" code:error.code userInfo:details];
            NSLog(@"Error occured->%@",error.localizedDescription);
        }
    }];

几个宏

#define kTwitterErrorMsg                @"lease set your Twitter account in Settings."
#define kTwitterAccessDeniedMsg         @"Twitter Access denied."

关于ios - 如何获取正在使用 twitter SLRequest 登录的用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22478817/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap