无法获得推特主页时间线推文



在我的应用程序中,我想在未登录Twitter帐户进入iPhone设置时从Twitter获取推文。实际上我只收到用户推文(我发推文)。但我想让所有关注者发推文。

我正在使用这个网址:http://api.twitter.com/1/statuses/user_timeline.json

我改成这个:http://api.twitter.com/1/statuses/home_timeline.json 发生错误。错误是:由于未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:"* -[__NSArrayM insertObject:atIndex:]:对象不能为零"

我正在使用此代码。

- (IBAction)twitterButtonPressed:(UIButton *)sender
{
    [self.usernameTextField resignFirstResponder];
    self.nameString = self.usernameTextField.text;
    NSURL *timelineUrl = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/home_timeline.json"];
    NSMutableDictionary *parameters =
    [[NSMutableDictionary alloc] init];
    [parameters setObject:self.nameString forKey:@"screen_name"];
    [parameters setObject:@"50" forKey:@"count"];
    [parameters setObject:@"1" forKey:@"include_entities"];
    SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:timelineUrl parameters:parameters];
    [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
     {
         if (responseData != nil)
         {
             NSError *error = nil;
             self.dataSource = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
         NSLog(@" tweet inindex 0 %@",[self.dataSource valueForKey:@"text"]);
         NSLog(@"ghjgjhdgjhdgjsgdjgsdjg  %d",dataSource.count);
             if (self.dataSource.count)
             {
             [self performSelectorOnMainThread:@selector(homeView) withObject:nil waitUntilDone:YES];
         }
     }
 }];
}

检查响应。它必须是

NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error]);

响应可能是

{
    errors =     (
                {
            code = 215;
            message = "Bad Authentication data";
        }
    );
}

因为主页时间线需要身份验证。

查看如何使用 iOS 5 获取推特

https://dev.twitter.com/docs/ios/making-api-requests-twrequest

但用户必须在 Twitter 中登录。

如果您不想使用 iOS 5 推特,请尝试使用其他带有 oAuth 的库,示例 https://github.com/bengottlieb/Twitter-OAuth-iPhone

试试这个:

NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType];
ACAccount *twitterAccount = [arrayOfAccounts lastObject];
SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:requestURL parameters:parameters];
postRequest.account = twitterAccount;

最新更新