2013-12-07 2 views
0

Я использую «STTwitter» для получения маркера из ниже URL и тела запросаКак получить Токен с использованием Twitter API 1.1 в прошивкой

https://dev.twitter.com/docs/api/1.1/post/oauth2/token

код запроса тела с URL ниже

- (void)verifyCredentialsWithSuccessBlock:(void(^)(NSString *username))successBlock errorBlock:(void(^)(NSError *error))errorBlock { 

    [self postResource:@"oauth2/token" 
     baseURLString:@"https://api.twitter.com" 
      parameters:@{ @"grant_type" : @"client_credentials" } 
      useBasicAuth:YES 
    uploadProgressBlock:nil 
downloadProgressBlock:nil 
      successBlock:^(id request, NSDictionary *requestHeaders, NSDictionary *responseHeaders, id json) { 

       NSString *tokenType = [json valueForKey:@"token_type"]; 
       if([tokenType isEqualToString:@"bearer"] == NO) { 
        NSError *error = [NSError errorWithDomain:NSStringFromClass([self class]) code:STTwitterAppOnlyCannotFindBearerTokenInResponse userInfo:@{NSLocalizedDescriptionKey : @"Cannot find bearer token in server response"}]; 
        errorBlock(error); 
        return; 
       } 

       self.bearerToken = [json valueForKey:@"access_token"]; 

       successBlock(_bearerToken); 

      } errorBlock:^(id request, NSDictionary *requestHeaders, NSDictionary *responseHeaders, NSError *error) { 
       errorBlock(error); 


       NSLog(@"ERROR %@",[error description]); 

      }]; 
} 

Для вызова метода выше я делаю ниже код

STTwitterAppOnly *twitter1 = [[STTwitterAppOnly alloc] init]; 
    [twitter1 verifyCredentialsWithSuccessBlock:^(NSString *bearerToken) { 

     NSLog(@"sd"); 

     [self.twitter getUserTimelineWithScreenName:@"SEREEN_NAME" 
            successBlock:^(NSArray *statuses) { 

             NSLog(@"ERROR ::: %@",[statuses description]); 

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

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

я получил ниже ошибок при выполнении выше коды ...

**Error Domain=STHTTPRequest Code=99 "Unable to verify your credentials"** 

Может ли вы предложить мне, что я пропустил в моем коде?

Я обеспокоен тем, что хочу читать твиттер без входа в Twitter. Только используя «Ключ потребителя» и «Секретный ключ» с API Twitter V1.1.

Благодаря

ответ

0

Убедитесь, что у вас есть ввести ключ потребителя и криптоключ в обоих Plist и заголовок приставке ...

0

кода вы вывесили несколько вопросов. Во-первых, вы делаете запрос из блока ошибки метода проверки вместо блока успеха. Во-вторых, вы используете метод postResource напрямую, а не более высокий уровень, чтобы делать то, что вы хотите.

Если все, что вы хотите, является токеном-носителем для ваших токенов потребителей, вы можете просто скопировать/вставить образец кода из STTwitter README в раздел App Only Authentication.

2

если у вас есть ConsumerKey и ConsumerSecret вы можете попробовать его

STTwitterAPIWrapper *twitterAPI = [[STTwitterAPIWrapper twitterAPIApplicationOnlyWithConsumerKey:@"Your Consumer Key" consumerSecret:@"Your Consumer Secret"] autorelease]; 
[twitterAPI verifyCredentialsWithSuccessBlock:^(NSString *username) { 
    [twitterAPI getUserTimelineWithScreenName:@"your ScreenName" count:25 successBlock:^(NSArray *statuses) { 
     NSLog(@"Success:%@", statuses); 

    } errorBlock:^(NSError *error){ 
     NSLog(@"Error : %@",error.description); 
    }]; 

} errorBlock:^(NSError *error) { 
     NSLog(@"Error : %@",error.description); 
}]; 
Смежные вопросы