我试图通过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]);
}];
}
最佳答案
根据Instapaper's API docs:
Instapaper的OAuth实施不同于您可能习惯的实施:没有请求令牌/授权工作流。这使它变得更加简单。相反,Instapaper使用与Twitter非常相似的xAuth实现。因此,您仍然需要签署请求,但是获取令牌很简单。
xAuth是获取Instapaper访问令牌的唯一方法。
OAuth 2与OAuth 1不同,OAuth 1本身与xAuth不同。AFOAuth2Client
在这里不起作用。您可能对AFXAuthClient
或AFOAuth1Client
感到幸运。