我正在尝试通过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]);
}];
}
答案 0 :(得分:1)
Instapaper的OAuth实现与您可能习惯的不同:没有请求令牌/授权工作流。这使它更简单。相反,Instapaper使用非常类似于Twitter的xAuth实现。所以你仍然需要签署你的请求,但获得令牌很简单。
xAuth是获取Instapaper访问令牌的唯一途径。
OAuth 2与OAuth 1不同,后者本身与xAuth不同。
AFOAuth2Client
不会在这里工作。您可以运气AFXAuthClient
或AFOAuth1Client
。