1

我只想获取特定 Twitter 帐户的所有推文。我想使用下面的 url,但不知道如何获取 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];

                }];
            }
        }
    }];
}

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

4

2 回答 2

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
于 2012-05-15T12:07:11.570 回答
1

screen_name 基本上是帐户名称。它是在“@”之后的名称。就像 WOW 的 screen_name 是 @Warcraft。

哦,事实上 .format 是问题所在。您必须指定以下 3 种之一:atom、json 或 xml。(我认为获取用户时间线不允许xml返回,只需阅读API)

由于我是一名 Java 程序员,恐怕我无法再提供帮助了:/

于 2012-05-15T11:10:19.863 回答