Error Code 220 - "Your credentials do not allow access to this resource" When tryig to get retweets

11,034

Solution 1

I experienced same issue with getting error code 220. Fix in my case was to prompt user to enter it's Twitter password again.

Check sample code below:

SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
                                            requestMethod:SLRequestMethodPOST
                                                      URL:[NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update.json"]
                                               parameters:@{@"status": tweetString}];

[request setAccount:account];  
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {

   if ([responseData isKindOfClass:[NSData class]]) {

       NSError *jsonError = nil;
       NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonError];

       if (json) {
           NSArray *errors = json[@"errors"];
           if (errors.count) {

               NSUInteger errorCode = [json[@"errors"][0][@"code"] integerValue];
                   if (errorCode == 220) {

                       ACAccountStore *accountStore = [[ACAccountStore alloc] init];
                       [accountStore renewCredentialsForAccount:account completion:^(ACAccountCredentialRenewResult renewResult, NSError *error2) {
                            NSLog(@"Renew result: %ld, error: %@", (long)renewResult, error2);

                            if (renewResult == ACAccountCredentialRenewResultRenewed) {
                                [self __makeTweetWithAccounts:@[account] rating:rating review:review];
                             }
                        }];
                }
            }
        }
    }             
    NSLog(@"Twitter response data: %@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}]; 

Solution 2

Was getting the same error when I noticed I was using GET instead of POST. Changed it and it worked.

Share:
11,034
hardc0der
Author by

hardc0der

Updated on July 08, 2022

Comments

  • hardc0der
    hardc0der almost 2 years

    When i try to get https://api.twitter.com/1.1/statuses/retweets/21947795900469248.json with my authorized credentials (oauth), i'm getting:

    {
     "errors": [
      {
       "message": "Your credentials do not allow access to this resource",
       "code": 220
      }
     ]
    }
    

    error: Any other twit id's not working. Is there a problem with this endpoint? Because i was getting true response until yesterday. Something changed?

  • boksiora
    boksiora almost 9 years
    Does not work for me. I created even a brand new app, but still get this issue
  • Josh
    Josh almost 9 years
    Twitter and Facebook are changing their APIs like socks, @boksiora , it is annoying but keep that in mind and try the latest solutions first.
  • Manish Gupta
    Manish Gupta almost 8 years
    Not worked- {"errors":[{"code":86,"message":"This method requires a GET or HEAD."}]}
  • Josh
    Josh almost 8 years
    @ManishGupta I recommend you look for answers from 2016, because Twitter and Facebook change their APIs as if they where socks xd.
  • Manish Gupta
    Manish Gupta almost 8 years
    Yep.. Many thanks for getting back here:) Really appreciated.