Giải pháp tôn trọng iOS:
1) Nếu bạn có một tài khoản Twitter (tức ACAccount
từ ACAccountStore
) trên thiết bị của bạn, điều duy nhất bạn cần là đính kèm nó vào SLRequest và nhận tất cả thông tin người dùng từ từ điển được trả về:
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) Nếu không - bạn cần gửi thông tin xác thực người dùng OAuth (X-Auth). Cách đơn giản nhất là sử dụng lớp TWTROAuthSigning để lấy OAuth-params:
TWTROAuthSigning *oauthSigning =
[[TWTROAuthSigning alloc]
initWithAuthConfig:
[Twitter sharedInstance].authConfig
authSession:session];
NSDictionary *authHeaders =
[oauthSigning OAuthEchoHeadersToVerifyCredentials];
và hơn gửi yêu cầu thông thường gắn thông tin như các lĩnh vực tiêu đề:
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];
}];
Nếu bạn hỗ trợ một phiên bản cũ của Twitter SDK hoặc tìm kiếm thêm tùy chọn Tôi khuyên bạn nên xem số STTwitter lib
Liên kết đến tài liệu cũ v1. Tài liệu mới (v1.1): https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials – joost
Đã cập nhật. Cảm ơn cho những người đứng đầu lên. – Swift
Nếu ứng dụng của bạn không được chấp thuận, hãy đặt tham số tùy chọn 'include_email' thành false https://dev.twitter.com/rest/reference/get/account/verify_credentials nếu không bạn sẽ nhận được' Thông tin đăng nhập của bạn không cho phép truy cập vào tài nguyên này' lỗi. –