it-swarm.com.de

Holen Sie sich die aktuellen Benutzerinformationen über die Twitter-API

Ich baue eine Twitter-App (mit oAuth) und finde keine Informationen darüber, wie ich die Informationen des aktuellen Benutzers abrufen kann.

Mit dem aktuellen Benutzer meine ich den Benutzer, der meiner App Berechtigungen erteilt hat und für wen die App die Anforderungen an die API stellt.

Irgendwelche Vorschläge?

51
Thomas
61
Swift

Link zur Dokumentation für API Version 1.1: https://dev.Twitter.com/docs/api/1.1/get/account/verify_credentials

4

Mit oAuth können Sie Anrufe tätigen, um Benutzerinformationen von Ihrem TwitterOAuth-Objekt abzurufen.

z. B. wenn  

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

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

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

Lösung für iOS:

1) Wenn Sie ein Twitter-Konto (d. H. ACAccount von ACAccountStore) auf Ihrem Gerät haben, müssen Sie es nur an SLRequest anhängen und alle Benutzerinformationen aus dem zurückgegebenen Wörterbuch abrufen:

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) Andernfalls müssen Sie OAuth (X-Auth) -Anmeldeinformationen senden. Der einfachste Weg ist die Verwendung der TWTROAuthSigning-Klasse zum Abrufen von OAuth-Parametern:

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

und dann senden Sie die normale Anfrage mit den Anmeldeinformationen als Header-Felder an:

  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];
                         }];

Wenn Sie eine ältere Version von Twitter SDK unterstützen oder nach weiteren Optionen suchen, würde ich empfehlen, STTwitter lib anzuschauen

0
David