dribbble クライアントで作業していますが、AFOAuth2Manager を使用して認証を取得するのに問題があります。私は現在NXOAuth2Clientを使用していますが、AFOAuth2Managerに出くわしたばかりなので、試してみたいと思います。
NXOAuthClient を使用すると、サーバーからトークンを問題なく取得できます。ただし、AFOAuth2Manager に関しては、常にエラーが返されます。
これは、NXOAuth2Client で初期化するために使用したものです。
[[NXOAuth2AccountStore sharedStore] setClientID:kDRBClientID
secret:kDRBClientSecret
scope:[NSSet setWithObjects:@"public", @"write", @"comment", @"upload", nil]
authorizationURL:[NSURL URLWithString:kDRBAuthorizationURL]
tokenURL:[NSURL URLWithString:kDRBTokenURL]
redirectURL:[NSURL URLWithString:kDRBRedirectURL]
keyChainGroup:kDRBAccountType
forAccountType:kDRBAccountType];
同じ定数を使用して、次のように AFOAuth2Manager で初期化しようとしています:
NSURL *baseURL = [NSURL URLWithString:kDRBBaseUrl];
AFOAuth2Manager *OAuth2Manager =
[[AFOAuth2Manager alloc] initWithBaseURL:baseURL
clientID:kDRBClientID
secret:kDRBClientSecret];
OAuth2Manager.useHTTPBasicAuthentication = NO;
NSDictionary *dictionary = @{@"scope" : @"public write",
@"redirect_uri" : kDRBRedirectURL};
[OAuth2Manager authenticateUsingOAuthWithURLString:@"/oauth/authorize"
parameters:dictionary
success:^(AFOAuthCredential *credential) {
NSLog(@"Token: %@", credential.accessToken);
}
failure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
dribbble のサインイン フローでは、最初にユーザーをサインイン ページ (/oauth/authorize ページ) に誘導します。ユーザーがユーザー名とパスワードを入力すると、指定された redirectURL にユーザーがリダイレクトされます。
今の私の問題は、サインイン ページにさえアクセスできなかったことです。誰かが私が間違っていることに光を当てることができますか? (AFOAuth2Manager のさまざまな認証方法も試しましたが、どれも機能しません)。
私は OAuth2 に非常に慣れていないので、ご容赦ください。
アップデート
エラーログは次のとおりです。
Error: Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: client error (422)" UserInfo=0x7fb02ad2de00 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7fb02ad6e200> { URL: https://dribbble.com/oauth/authorize } { status code: 422, headers {
Connection = close;
"Content-Length" = 47;
"Content-Type" = "application/json; charset=utf-8";
Date = "Sat, 08 Aug 2015 23:52:20 GMT";
Server = "nginx/1.4.6 (Ubuntu)";
Status = "422 Unprocessable Entity";
"X-Request-Id" = "8489a5f0-206a-48ff-b6e7-81664fc6b6f5";
"X-Runtime" = "0.006667";
} }
NXOAuth2Client を使用すると、次のようなパラメーターを使用してサインイン ページの URL が準備されます。
https: //dribbble.com/oauth/authorize?client_id=my_client_id&scope=write%20comment%20upload%20public&redirect_uri=my_redirect_uri&response_type=code
しかし、AFOAuth2 ではhttps://dribbble.com/oauth/authorizeでエラーがスローされることに気付きました。私のパラメータをリクエストURLに追加しませんか?