Je construis une application Twitter (avec oAuth) et je ne trouve aucune information sur la façon dont je peux obtenir les informations de l'utilisateur actuel.
Par utilisateur actuel, j'entends l'utilisateur qui a accordé les autorisations à mon application et pour qui l'application fait les demandes à l'API.
Aucune suggestion?
C'était en fait "compte/verify_credentials" comme on le voit ici:
Lien vers la documentation pour API v. 1.1: https://dev.Twitter.com/docs/api/1.1/get/account/verify_credentials
En utilisant oAuth, vous pouvez appeler pour obtenir des informations sur votre utilisateur à partir de votre objet TwitterOAuth.
par exemple si
$oauth = new TwitterOAuth([keys here]);
$credentials = $oauth->get('account/verify_credentials');
echo "Connected as @" . $credentials->screen_name ."\n";
Solution respectant iOS:
1) Si vous avez un compte Twitter (c'est-à-dire ACAccount
à partir de ACAccountStore
) sur votre appareil, la seule chose dont vous avez besoin est de le joindre à SLRequest et d'obtenir toutes les informations utilisateur du dictionnaire renvoyé:
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) Sinon, vous devez envoyer les informations d'identification de l'utilisateur OAuth (X-Auth). Le moyen le plus simple consiste à utiliser la classe TWTROAuthSigning pour récupérer des paramètres OAuth:
TWTROAuthSigning *oauthSigning =
[[TWTROAuthSigning alloc]
initWithAuthConfig:
[Twitter sharedInstance].authConfig
authSession:session];
NSDictionary *authHeaders =
[oauthSigning OAuthEchoHeadersToVerifyCredentials];
et que d'envoyer la demande ordinaire en joignant les informations d'identification sous forme de champs d'en-tête:
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];
}];
Si vous supportez une ancienne version de Twitter SDK ou si vous recherchez plus d'options, je vous recommande de regarder STTwitter lib