LinkedIn の API から OAuth トークンを取得するために、AFNetworking、AFOAuth1Client、および AFLinkedInOAuth1Client を使用しています。これはすべてうまくいっています。
getPath を使用して呼び出しを行うとv1/people/~
、一貫して 401 を受け取ります。
コードからすべて同じ値を LinkedIn コンソールにプッシュすると、生成されたリンクから、求めている基本的なプロファイルが得られます。
401 の原因は何ですか? AFNetworkingまたはそれの私の構成のいずれかであると感じています。
また、根本的な問題を診断する方法について何か提案はありますか?
以下のコード
+ (JJLinkedInClient *)sharedInstance {
DEFINE_SHARED_INSTANCE_USING_BLOCK(^{
return [[self alloc] init];
});
}
- (id)init {
if ( (self = [super init]) ) {
_client = [[AFLinkedInOAuth1Client alloc] initWithBaseURL:[NSURL URLWithString:kJJLinkedInAPIBaseURLString]
key:@"XXXXXXXX"
secret:@"YYYYYYYY"];
// [_client registerHTTPOperationClass:[AFJSONRequestOperation class]];
[_client registerHTTPOperationClass:[AFHTTPRequestOperation class]];
// [_client setDefaultHeader:@"Accept" value:@"application/json"];
}
return self;
}
- (void)authorize:(void(^)())success {
__block JJLinkedInClient *weakSelf = self;
[self.client authorizeUsingOAuthWithRequestTokenPath:@"uas/oauth/requestToken"
userAuthorizationPath:@"uas/oauth/authorize"
callbackURL:[NSURL URLWithString:@"XXXXXXX://linkedin-auth-success"]
accessTokenPath:@"uas/oauth/accessToken"
accessMethod:@"POST"
success:^(AFOAuth1Token *accessToken) {
NSLog(@"Success: %@", accessToken);
[weakSelf getProfile];
success();
} failure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
- (void)getProfile {
[self.client getPath:@"v1/people/~"
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@", responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@", error);
}];
}