Получить информацию о текущем пользователе из Twitter API - PullRequest
51 голосов
/ 27 июня 2010

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

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

Есть предложения?

Ответы [ 4 ]

62 голосов
/ 14 июля 2010

На самом деле это был "account / verify_credentials", как показано здесь:

https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials.html

4 голосов
/ 03 апреля 2014

Ссылка на документацию по API v. 1.1: https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials

2 голосов
/ 23 марта 2012

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

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

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

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

echo "Connected as @" . $credentials->screen_name ."\n";
0 голосов
/ 11 мая 2015

Решение относительно 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];
                         }];

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

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