Получить текущую информацию о пользователе из API Twitter - программирование
Подтвердить что ты не робот

Получить текущую информацию о пользователе из API Twitter

Я создаю приложение Twitter (с oAuth), и я не могу найти информацию о том, как я могу получить текущую информацию о пользователе.

К текущему пользователю я имею в виду пользователя, предоставившего разрешения для моего приложения и для которого приложение делает запросы к API.

Любые предложения?

4b9b3361

Ответ 3

Используя oAuth, вы можете совершать звонки, чтобы получать информацию о пользователе из объекта TwitterOAuth.

например, если

$oauth = new TwitterOAuth([keys here]);

$credentials = $oauth->get('account/verify_credentials');

echo "Connected as @" . $credentials->screen_name ."\n";

Ответ 4

Решение, относящееся к iOS:

1) Если на вашем устройстве есть учетная запись Twitter (т.е. ACAccount от ACAccountStore), единственное, что вам нужно - это подключить ее к SLRequest и получить всю информацию о пользователе из возвращаемого словаря:

NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/account/verify_credentials.json"];
NSMutableDictionary *params = [NSMutableDictionary new];
[params setObject:[Twitter sharedInstance].session.userID forKey:@"user_id"];
[params setObject:@"0" forKey:@"include_entities"];
[params setObject:@"1" forKey:@"skip_status"];
[params setObject:@"1" forKey:@"include_email"];

SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:params];
[request setAccount:twitterAccount]; //one of the Twitter Acc
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
    if (responseData) {
        NSDictionary *twitterData = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:NULL];
        });

    }else {
        NSLog(@"Error while downloading Twitter user data: %@", error);
    }
}];

2) В противном случае вам необходимо отправить учетные данные пользователя OAuth (X-Auth). Самый простой способ - использовать класс TWTROAuthSigning для извлечения параметров OAuth:

TWTROAuthSigning *oauthSigning =
                         [[TWTROAuthSigning alloc]
                          initWithAuthConfig:
                          [Twitter sharedInstance].authConfig
                          authSession:session];
                         NSDictionary *authHeaders =
                         [oauthSigning OAuthEchoHeadersToVerifyCredentials];

а затем отправить обычные запросы, содержащие учетные данные, в качестве полей заголовка:

  NSString *oauthParameters = authHeaders[@"X-Verify-Credentials-Authorization"];
                         NSString *urlString = authHeaders[@"X-Auth-Service-Provider"];
                         NSMutableURLRequest *request =
                         [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
                         request.allHTTPHeaderFields = @{@"Authorization":oauthParameters};
                         [request setHTTPMethod:@"GET"];
                         NSOperationQueue *queue = [[NSOperationQueue alloc]init];
                         [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response,NSData *data,NSError *error){
                              NSDictionary *twitterData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:NULL];
                         }];

Если вы поддерживаете старую версию SDK Twitter или ищете больше вариантов, я бы рекомендовал посмотреть STTwitter lib