2017-10-30 5 views
0

私はObjective-CでBittrexのAPIを呼び出すためにしようとしているが、私は、次のメッセージが表示されます。ここではObjective-CでBittrex APIを呼び出す方法は?

{ 
    message = "APIKEY_NOT_PROVIDED"; 
    result = "<null>"; 
    success = 0; 
} 

は私のコードです:

- (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]; 

} 

私はBittrex APIを呼び出す方法を教えてください。

環境

MacOSのHighSierra
XCodeの9.0.1
のObjective-C

+1

あなたがコピーした場合、そのまま/ライン 'NSURLQueryItem * APIキー= [NSURLQueryItem queryItemWithName: "APIキー" 値@: "XXXXX" @]、あなたのコードを貼り付け;'あなたのAPIキーが含まれていません... – idelara

+0

私は自分でAPIキーを隠しました。 – tsnmi

答えて

0

あなたは完全なURLとハッシュを生成する必要があります。

[request setValue:[self sha512:url.absoluteString withSalt:@"YOUR API SECRET"] forHTTPHeaderField:@"apisign"]; 

そして、次のコードは不要です。

NSData *body = [components.query dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 
[request setHTTPBody:body]; 
+0

詳細な回答をいただきありがとうございます。 – tsnmi

関連する問題