【发布时间】:2013-12-07 06:03:13
【问题描述】:
我正在使用“STTwitter”从下面的 URL 和请求正文中获取令牌
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 的情况下阅读 Twitter 提要。仅在 Twitter API V1.1 中使用“Consumer Key”和“Secret Key”。
谢谢
【问题讨论】:
标签: ios objective-c twitter-bootstrap twitter