加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Objective OA中的Twitter OAuth和accessToken到GET状态/ user_ti

发布时间:2020-12-16 06:46:01 所属栏目:百科 来源:网络整理
导读:我正试图从Twitter获取accessToken值,以便在我的应用程序中使用它(我需要使用API?? v1.1的GET状态/ user_timeline的身份验证模型);我在api.twitter.com上注册了我的应用程序,在项目中导入了 AFOAuth1Client个类,这是一个简单的代码: - (void)viewDidLoad{ s
我正试图从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);
    }];
}

不幸的是,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>

这有什么不对?我需要在api.twitter.com上注册应用程序吗?它是正确的方式,或者,在iOS中使用API?? v1.1的Twitter身份验证模型获取状态/ user_timeline的简单方法是什么?谢谢!

编辑:可能的航点?

1)在dev.twitter.com上注册一个新的应用程序

2)在OAuth设置中,读取Consumer密钥和Consumer secret

3)设置默认的app访问类型来读取?或读/写?要求获取令牌?在…中使用这个值?

解决方法

自Twitter推出 application only模式以来已经过去几天了.在此模式下,您可以在没有用户上下文的情况下访问特定的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);
}];

有关工作示例,请参阅STTwitter iOS演示项目(使用您自己的使用者密钥/机密).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读