我是iOS开发的新手,所以我不清楚如何解决这个问题:使用用户提供的用户名和密码,检查凭据是否是有效的Twitter帐户。记录用户并检索用户关注者,帐户信息,时间表和推文。
我知道我没有尝试任何东西,但这只是因为我不知道从哪里开始。我做了一些搜索,发现了一些关于OAuth的内容。但是大部分内容都适用于iOS 5。
答案 0 :(得分:1)
查看Social.framework
(iOS6及更高版本)。它管理几个社交网站的身份验证,包括twitter。用户创建帐户并授予您的应用访问权限后,您可以使用SLRequest
执行经过身份验证的Twitter(或其他)http请求,而无需直接使用Oauth。
首先你得到ACAccount
。
#import <Social/Social.h> // SLRequest
- (void)getTwitter {
ACAccountType *accountType = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[_accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
if (granted) {
// access granted, get account info
NSArray *accounts = [_accountStore accountsWithAccountType:accountType];
ACAccount *account = [accounts lastObject];
// yay, now you can use account for authenticated twitter requests
} else {
NSLog(@"Access not granted: %@\n", error);
}
}
];
}
然后您就可以开始进行经过身份验证的请求,例如获取帐户信息
- (void)getTwitterAccount:(ACAccount *)account {
NSString *get = @"https://api.twitter.com/1.1/account/verify_credentials.json";
NSURL *url = [NSURL URLWithString:get];
NSDictionary *parms = @{ @"include_entities" : @"false", @"skip_status" : @"true" };
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:parms ];
request.account = account;
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error){
if(!error) {
NSLog(@"response: %@\n", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
} else {
NSLog(@"performRequestWithHandler error %@\n", error);
}
}];
}
请参阅Twitter API docs了解时间表,推文等。