Hux*_*ley 3 twitter oauth objective-c access-token afnetworking
我正试图从Twitter获取accessToken值,以便在我的应用程序中使用它(我需要使用API v1.1的GET状态/ user_timeline的身份验证模型); 我在api.twitter.com上注册了我的应用程序,在项目中导入了AFOAuth1Client类,这是一个简单的代码:
- (void)viewDidLoad
{
self.twitterClient = [[AFOAuth1Client alloc] initWithBaseURL:
[NSURL URLWithString:@"https://api.twitter.com/"] key:@"MYKEY" secret:@"MYSECRETKEY"];
AFOAuth1Token *accessToken;
[self.twitterClient acquireOAuthAccessTokenWithPath:@"oauth/request_token" requestToken:accessToken accessMethod:@"GET" success:^(AFOAuth1Token *accessToken) { // I have tried also accessMethod: @"POST"
NSLog(@"Success: %@", accessToken);
} failure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,XCode给了我这个错误:
Error: Error Domain=AFNetworkingErrorDomain Code=-1011 "Expected status code in (200-299), got 401" UserInfo=0x79a14f0 {NSLocalizedRecoverySuggestion=Failed to validate oauth signature and token, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x7956390>
Run Code Online (Sandbox Code Playgroud)
这有什么不对?我需要在api.twitter.com上注册应用程序吗?它是正确的方式,或者,在iOS中使用API v1.1的Twitter身份验证模型获取状态/ user_timeline的简单方法是什么?谢谢!
编辑:可能的航点?
1)在dev.twitter.com上注册一个新的应用程序
2)在OAuth设置中,读取Consumer密钥和Consumer secret
3)设置默认的app访问类型来读取?或读/写?要求获取令牌?在...中使用这个值?
nst*_*nst 21
自从Twitter添加了仅限应用程序模式以来的几天.在此模式下,您可以在没有用户上下文的情况下访问特定的API端点,即.您的用户无需进行身份验证.只有应用程序会偶尔进行身份验证才能获得"承载令牌",然后在每个请求中发送.
以下代码获取持票人令牌,然后检索@barackobama的公共时间表.
STTwitterAPI *twitter = [STTwitterAPI twitterAPIApplicationOnlyWithConsumerKey:@""
consumerSecret:@""];
[twitter verifyCredentialsWithSuccessBlock:^(NSString *bearerToken) {
NSLog(@"Access granted with %@", bearerToken);
[twitter getUserTimelineWithScreenName:@"barackobama" successBlock:^(NSArray *statuses) {
NSLog(@"-- statuses: %@", statuses);
} errorBlock:^(NSError *error) {
NSLog(@"-- error: %@", error);
}];
} errorBlock:^(NSError *error) {
NSLog(@"-- error %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
有关工作示例,请参阅STTwitter iOS演示项目(使用您自己的使用者密钥/机密).