아마존 웹 서비스를 사용하여 제품 가격을 받고 있습니다.Amazon 제품 검색 API : 작동하지 않습니다.
괜찮 았지만 Amazon이 associateTag가 필수 매개 변수가되는 API를 변경 한 후에 오류가 발생하기 시작했습니다.
tempQueryString =[NSString stringWithFormat:@"GET\necs.amazonaws.com\n/onca/xml\nAWSAccessKeyId=AKIAJ3A3LA5NYXWPSTGQ&IdType=ASIN&ItemId=B003VKR0J0&MerchantId=Amazon&AssociateTag=babyformu-20&Operation=ItemLookup&ResponseGroup=Large&Service=AWSECommerceService&SignatureVersion=2&SignatureMethod=HmacSHA256&Timestamp=%@T%@%@%@Z&Version=2010-01-01",str2,hour,mint,s];
지금은주고이 오류 : 그래서 나는 같은 요청에 관련된 태그를 넣어
"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details."
나는 서명 방법을 변경하지 않았다. 는 여기있다 :
NSString *key = @"9at/FN4mouFxnIV2SsoQTR4iO6x6AWVt2xFvEwmv"; // private key
NSLog(@"current: %@ ",queryString);
NSString *data = queryString;
const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC
length:sizeof(cHMAC)];
hash = [HMAC base64Encoding];
NSLog(@"hash value11 == %@",hash);
encodedString = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)hash, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8);
가 나는 제품 세부 정보를 얻기 위해이 API를 사용하고 있습니다 : 사전에
query=[NSString stringWithFormat:@"http://ecs.amazonaws.com/onca/xml?AWSAccessKeyId=AKIAJ3A3LA5NYXWPSTGQ&IdType=ASIN&ItemId=B003VKR0J0&AssociateTag=babyformu-20&MerchantId=Amazon&Operation=ItemLookup&ResponseGroup=Large&Service=AWSECommerceService&Timestamp=%@T%@:%@:%@Z&Version=2009-03-31&Signature=%@",str2,h,m,s,encodedString];
감사합니다.
오늘도 같은 문제가 발생합니다. 이제 associateTag가 필요합니다. 나는 결과를 다시 가져 오지 않을 것입니다 ... 매우 실망합니다. – Standage