1

Magento によって実装された OAuth プロトコルの 3 番目の部分にたどり着きました

http://www.magentocommerce.com/api/rest/authentication/oauth_authentication.html

まず、リクエスト トークン コールがトークンを返します。UIWebView でユーザーに承認ダイアログを提示し、ユーザーが「承認」を押した後にトークン/ベリファイアを抽出します。

これらのパラメーターを使用して access_token url を呼び出します

OAuth realm="", 
oauth_timestamp="1339756083",
oauth_nonce="d1dc184d236756c42210b746a887edb5bd69cf44", 
oauth_signature_method="HMAC-SHA1", 
oauth_consumer_key="{censored}", 
oauth_version="1.0", 
oauth_token="912i72lcu6vzlwk6a3vdj4a3sstbdzqp",
oauth_token_secret="t5cg9qlykkk9411iv0rbul0gnw9fsa0m", 
oauth_verifier="9vu02kbymodo63pve091otffvy53rhlf",
oauth_signature="fDwWGeJhatIX6kK4nb%2Bagp4C%2FxU%3D"

これは私の Obj-C コードの一部です

NSMutableArray* values = [[NSMutableArray alloc]initWithObjects:self.requestToken,self.requestSecret,verifier, nil];
NSMutableArray* keys = [[NSMutableArray alloc]initWithObjects:@"oauth_token", @"oauth_token_secret", @"oauth_verifier", nil];
NSDictionary* extraParams = [[NSDictionary alloc] initWithObjects:values forKeys:keys];

OAuth* oauth = [[OAuth alloc] initWithConsumerKey:OAUTH_CONSUMER_KEY andConsumerSecret:OAUTH_CONSUMER_SECRET];

NSString* authHeader = [oauth oAuthHeaderForMethod:@"POST" andUrl:ACCESS_TOKEN_URL andParams:extraParams];
NSLog(@"%@", authHeader);
ASIHTTPRequest* request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:ACCESS_TOKEN_URL]];
[request addRequestHeader:@"Authorization" value:authHeader];

これはマゼンタが私に返す言葉です

2012-06-15 12:28:06.052 Versmissen[2175:707] 401 3-> HTTP/1.1 401 Authorization Required  -> (null) -> http://{censored}/oauth/token

ただし、401 3 は、API で説明されている OAuth エラーのリストにはありません。私は一生、何が悪いのか理解できません!

4

1 に答える 1

0

修繕。request_secret で認証ヘッダーに署名する必要があります

NSString* authHeader = [self.oauth oAuthHeaderForMethod:@"POST" andUrl:ACCESS_TOKEN_URL andParams:extraParams andTokenSecret:self.requestSecret];

:)

于 2012-06-15T12:29:01.257 に答える