我在桌面视图中使用用户时间轴开发了一个应用程序。它将是每个应用程序中相同的用户时间轴。我已经对此进行了编码,并且完美无缺。我的问题是,当我在调用中将API版本从1更改为1.1时,它将停止工作。所有推文都将通过推文表,所以我不需要身份验证。我是否需要添加代码,而不仅仅是在调用中更改API版本,或者设置授权只是为了显示新API的时间轴?除了简单地显示单个用户时间轴和使用推文表进行响应之外,我不会添加任何功能。我附上了我的代码。任何帮助都会很棒。谢谢。
- (void)fetchTweets
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://api.twitter.com/1/statuses/user_timeline.json?include_rts=false&screen_name=johnnelm9r&count=100"]];
if (data == nil)
{
}
else
{
NSError *error;
tweets = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
}
dispatch_async(dispatch_get_main_queue(), ^{
[self.twitterTableView reloadData];
});
});
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:kReachabilityChangedNotification
object:nil];
self.reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
[self.reachability startNotifier];
}
答案 0 :(得分:0)
这是我最终想出来的。它对于我需要它做的事情来说就好了。希望它也可以帮助其他人。
- (void)fetchTweets
{
twitterLoader.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"StatusIndicator.png"],
[UIImage imageNamed:@"StatusIndicator1.png"],
[UIImage imageNamed:@"StatusIndicator2.png"],
[UIImage imageNamed:@"StatusIndicator3.png"],
[UIImage imageNamed:@"StatusIndicator4.png"],
[UIImage imageNamed:@"StatusIndicator5.png"],
[UIImage imageNamed:@"StatusIndicator6.png"],
[UIImage imageNamed:@"StatusIndicator7.png"],
[UIImage imageNamed:@"StatusIndicator8.png"],
[UIImage imageNamed:@"StatusIndicator9.png"],
[UIImage imageNamed:@"StatusIndicator10.png"],
[UIImage imageNamed:@"StatusIndicator9.png"],
[UIImage imageNamed:@"StatusIndicator8.png"],
[UIImage imageNamed:@"StatusIndicator7.png"],
[UIImage imageNamed:@"StatusIndicator6.png"],
[UIImage imageNamed:@"StatusIndicator5.png"],
[UIImage imageNamed:@"StatusIndicator4.png"],
[UIImage imageNamed:@"StatusIndicator3.png"],
[UIImage imageNamed:@"StatusIndicator2.png"],
[UIImage imageNamed:@"StatusIndicator1.png"],
nil];
twitterLoader.animationDuration = 0.8;
[twitterLoader startAnimating];
ACAccountStore *store = [[ACAccountStore alloc] init];
ACAccountType *twitterAccountType =
[store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Request permission from the user to access the available Twitter accounts
[store requestAccessToAccountsWithType:twitterAccountType
options:nil
completion:^(BOOL granted, NSError *error)
{
if (!granted)
{
NSLog(@"User rejected access to the account.");
}
else
{
[twitterLoader startAnimating];
NSArray *twitterAccounts =
[store accountsWithAccountType:twitterAccountType];
if ([twitterAccounts count] > 0)
{
ACAccount *account = [twitterAccounts objectAtIndex:0];
[twitterLoader startAnimating];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:@"johnnelm9r" forKey:@"screen_name"];
[params setObject:@"100" forKey:@"count"];
[params setObject:@"0" forKey:@"include_entities"];
[params setObject:@"0" forKey:@"include_rts"];
// The endpoint that we wish to call
NSURL *url =
[NSURL
URLWithString:@"http://api.twitter.com/1.1/statuses/user_timeline.json"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodGET
URL:url
parameters:params];
// Attach the account object to this request
[request setAccount:account];
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
if (!responseData)
{
NSLog(@"%@", error);
}
else
{
NSError *jsonError;
tweets = [NSJSONSerialization JSONObjectWithData:responseData
options:NSJSONReadingMutableLeaves
error:&jsonError];
if (tweets)
{
NSLog(@"%@", tweets);
[self.twitterTableView reloadData];
[twitterLoader stopAnimating];
}
else
{
NSLog(@"%@", jsonError);
}
}
}];
[self.twitterTableView reloadData];
[twitterLoader stopAnimating];
}
}
}];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:kReachabilityChangedNotification
object:nil];
self.reachability = [Reachability reachabilityWithHostName:@"www.apple.com"];
[self.reachability startNotifier];
}
我还添加了一个简单的加载程序和可访问性。如果您不需要它,只需删除底部的NSNotification。
并确保添加
帐户和社交框架
并将其头文件导入您在其中使用的.m文件。
祝你好运!