我如何从用户那里获得最新的推文并在UILabel中更新它?

时间:2014-08-03 01:08:52

标签: ios json twitter nsstring uilabel

我试图从一个Twitter帐户获取最新的推文,并在我的视图中在UILabel中更新。推文应存储在一个字符串中,并在每次有新推文时更新。我尝试使用带有" screen_name"参数的twitter API。和"计算",并将所有推文存储在一个数组中。当我打印数组时,它返回null。任何帮助将不胜感激。

编辑: 我收到了一个错误的身份验证数据"现在错误。

    NSURL *requestAPI = [NSURL URLWithString:@"https://api.twitter.com/1.1/search/tweets.json"];

    NSDictionary *parameters = @{@"q": @"@user",
                                                 @"result_type":@"recent",
                                                 @"count": @"1"};

    SLRequest *posts = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:requestAPI parameters:parameters];

    [posts performRequestWithHandler:^(NSData *response, NSHTTPURLResponse *urlResponse, NSError *error){

        self.tweet = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
        NSLog(@"%@",self.tweet);
  }];

1 个答案:

答案 0 :(得分:2)

如果您想从一个特定用户获取推文,您应该使用仅应用身份验证(请参阅链接:https://dev.twitter.com/docs/auth/application-only-auth)。另外,我建议使用STTwitter库来简化操作。请参阅以下代码:

STTwitterAPI *twitter = [STTwitterAPI twitterAPIAppOnlyWithConsumerKey:@"CONSUMER KEY" consumerSecret:@"CONSUMER SECRET KEY"];

[twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {

        [twitter getUserTimelineWithScreenName:@"thetwitteraccount" count:100 successBlock:^(NSArray *statuses) {

            self.tweets = [NSMutableArray arrayWithArray:statuses];

            //Say we want to access the text of the first tweet in the array
            NSDictionary *text = self.tweets[0];
            self.yourlabel.text = text[@"text"];

        } errorBlock:^(NSError *error) {
            code

        }];
    } errorBlock:^(NSError *error) {
        code
    }];