NSURLSessionでの認証
Objective-Cを使いBittrexのAPI認証をしたいと思いこちらを参考にして https://bittrex.com/home/api
https://stackoverflow.com/questions/44610874/bittrex-api-returns-apikey-not-provided
以下のようなコードを書きました。
- (void)fetch {
double unixtime = [[NSDate date] timeIntervalSince1970];
NSURLComponents *components = [NSURLComponents componentsWithString:@"https://bittrex.com"];
components.path = @"/api/v1.1/account/getbalances";
NSURLQueryItem *nonce = [NSURLQueryItem queryItemWithName:@"nonce" value:[NSString stringWithFormat:@"%f",unixtime]];
NSURLQueryItem *apikey = [NSURLQueryItem queryItemWithName:@"apikey" value:@"xxxxx"];
components.queryItems = @[nonce,apikey];
NSURL *url = [components URL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setValue:[self sha512:components.query withSalt:@"xxxxx"] forHTTPHeaderField:@"apisign"];
NSData *body = [components.query dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[request setHTTPBody:body];
[[[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (response && ! error) {
NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]);
} else {
NSLog(@"%@", error);
}
}] resume];
}
しかしこのメッセージが返ってきてしまいます。
{
message = "APIKEY_NOT_PROVIDED";
result = "<null>";
success = 0;
}
APIの認証などは今までほとんどやったことがなく困っています。どのように書いたらいいのでしょうか?