IOS 无法回复状态status_id



我想用状态id回复推特状态。但我得到HTTP响应403。这是我的代码。我可以发第一条推特。我明白它的身份。但是当我想发送回复第一推文与它的id我得到http响应403。我错在哪里?

 - (IBAction)btnSendToucUpInside:(id)sender {
    __block NSDecimalNumber *tid;
    __block int i = 0;
    while (true) {
        if (i == 0  || _birlestirilsinMi) {
            urlParametres = [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%@", [self.twitArray objectAtIndex:0]], @"status", nil];
        }else{
            urlParametres = [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%@", [self.twitArray objectAtIndex:0]], @"status",[NSString stringWithFormat:@"%@",tid], @"in_reply_to_status_id",@"true", @"include_entities", nil];
        }
        TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"https://api.twitter.com/1/statuses/update.json"] parameters:urlParametres requestMethod:TWRequestMethodPOST];
        [postRequest setAccount:[twitAccountArray objectAtIndex:0]];
        [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
         {
             if (responseData) {
                 i++;
                 NSDictionary *TWData = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
                 tid = TWData[@"id"];
                 NSLog(@"%@",tid);
                 //show status after done
                 NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]];
                 NSLog(@"Twiter post status : %@", output);
             }
         }];
        if (i == _twitArray.count -1) {
            break;
        }
    }
}

你反复发送相同的消息到twitter,你的循环是不稳定的,没有正确使用你的twitArray变量。确保在构建TWRequest实例时使用twitArray。您需要这样的内容:

for (NSString *twit in twitArray) {
    ...
    urlParametres = @{ @"status" : twit }
    ...
}

而不是在每次迭代中使用[self.twitArray objectAtIndex:0]


也照顾TWRequest: TWRequest在iOS 6.0中被弃用-我可以用什么代替?


有点跑题,但是while(true) + break是一个非常糟糕的做法,几乎和使用goto一样糟糕,你绝对应该使用这样的东西:

for (NSString *twit in twitArray) {...}

或者如果您需要颠倒顺序:

for (NSString *twit in twitArray.reverseObjectEnumerator) {...}

相关内容

最新更新