获取特定Twitter帐户的所有推文?

时间:2012-05-15 11:06:19

标签: objective-c

我只想获取特定Twitter帐户的所有推文。我想使用下面的网址,但不知道我们如何获得Twitter帐号的user_id或screen_name,我们想要获取推文。

资源URL http://api.twitter.com/1/statuses/user_timeline.format参数请求用户时间线时始终指定user_id或screen_name。

是否有任何想法或源代码或参考。任何帮助都会非常值得赞赏。

我使用以下功能获取200条推文,但它显示在NSLog

  

HTTP响应状态:403消息

功能

- (IBAction)followOnTwitter:(id)sender
{
    ACAccountStore *accountStore = [[ACAccountStore alloc] init];

    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

    [accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
        if(granted) {
            // Get the list of Twitter accounts.
            NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];

            // For the sake of brevity, we'll assume there is only one Twitter account present.
            // You would ideally ask the user which account they want to tweet from, if there is more than one Twitter account present.
            if ([accountsArray count] > 0) {
                // Grab the initial Twitter account to tweet from.
                ACAccount *twitterAccount = [accountsArray objectAtIndex:0];

                NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] init];
                [tempDict setValue:@"rohit40793982" forKey:@"screen_name"];
                //[tempDict setValue:@"true" forKey:@"follow"];
               // [tempDict setValue:@"683286" forKey:@"user_id "];

                TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"http://api.twitter.com/1/statuses/user_timeline.format"] 
                                                             parameters:tempDict 
                                                          requestMethod:TWRequestMethodPOST];


                [postRequest setAccount:twitterAccount];

                [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
                    NSLog(@"%@",urlResponse);
                    tweets = [NSJSONSerialization JSONObjectWithData:responseData
                                                            options:kNilOptions 
                                                              error:&error];
                    NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]];
                    NSLog(@"%@", output);
                    [self performSelectorOnMainThread:@selector(displayText:) withObject:output waitUntilDone:NO];

                }];
            }
        }
    }];
}

我没有收到所有推文的数组。

2 个答案:

答案 0 :(得分:3)

我认为你的错误在于这条线

http://api.twitter.com/1/statuses/user_timeline.format

“。format”是您想要响应的格式。例如,如果您需要XML,请使用

https://api.twitter.com/1/statuses/user_timeline.xml

或对于JSON,请使用

https://api.twitter.com/1/statuses/user_timeline.json

您还需要将screen_name附加为查询。例如,要将我的所有推文都作为JSON,请使用

https://api.twitter.com/1/statuses/user_timeline.xml?screen_name=edent

答案 1 :(得分:1)

screen_name基本上是帐户名。它就是'@'之后的名字。就像WOW的screen_name是@Warcraft。

哦,实际上.format就是问题所在。您必须指定3:atom,json或xml中的一个。 (我认为获取用户时间轴不允许xml返回,只需阅读API)

由于我是Java程序员,我担心我无法继续提供帮助:/