使用Instapaper API时,为什么我会不断收到401错误?

时间:2013-03-27 22:02:44

标签: ios objective-c api afnetworking instapaper

我正在尝试通过full Instapaper API使用AFOAuth2Client library,但我一直收到错误代码401.我不知道我的代码有什么问题。当我从电子邮件中复制并粘贴它们时,我绝对是正确的ID和秘密。

- (IBAction)loginPressed:(UIButton *)sender {
    NSURL *baseURL = [NSURL URLWithString:@"https://www.instapaper.com/"];

    AFOAuth2Client *OAuthClient = [AFOAuth2Client clientWithBaseURL:baseURL
                                                  clientID:@"fromEmail"
                                                  secret:@"fromEmail"];

    NSDictionary *parameters = @{
        @"x_auth_username:" : self.usernameField.text,
        @"x_auth_password:" : self.passwordField.text,
        @"x_auth_mode:" : @"client_auth"
    };

    [OAuthClient authenticateUsingOAuthWithPath:@"api/1/oauth/access_token"
                 parameters:parameters
                 success:^(AFOAuthCredential *credential) {
                     NSLog(@"I has token! %@", credential.accessToken);
                     // [AFOAuthCredential storeCredential:credential withIdentifier:OAuthClient.serviceProviderIdentifier];
                 }
                 failure:^(NSError *error) {
                     NSLog(@"Sheet. %@", [error localizedDescription]);
                 }];
}

1 个答案:

答案 0 :(得分:1)

根据Instapaper's API docs

  

Instapaper的OAuth实现与您可能习惯的不同:没有请求令牌/授权工作流。这使它更简单。相反,Instapaper使用非常类似于Twitter的xAuth实现。所以你仍然需要签署你的请求,但获得令牌很简单。

     

xAuth是获取Instapaper访问令牌的唯一途径。

OAuth 2与OAuth 1不同,后者本身与xAuth不同。

AFOAuth2Client不会在这里工作。您可以运气AFXAuthClientAFOAuth1Client