2017-06-02 4 views
0

Je suis un peu nouveau en C++ et je n'ai jamais utilisé de SDK. J'essaie d'utiliser C++ dans Visual Studio 2013 recréer l'exemple d'appel d'API fourni sur la page de développeur du site demandeur MTurk qui doit renvoyer le solde du compte à partir du bac à sable. Voici l'exemple pour python, copié hors de la page développeur:SDK C++ pour l'appel de l'API MTurk GetAccountBalance

import boto3 

    region_name = 'us-east-1' 
    aws_access_key_id = 'YOUR_ACCESS_ID' 
    aws_secret_access_key = 'YOUR_SECRET_KEY' 

    endpoint_url = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com' 

    # Uncomment this line to use in production 
    # endpoint_url = 'https://mturk-requester.us-east-1.amazonaws.com' 

    client = boto3.client('mturk', 
     endpoint_url = endpoint_url, 
     region_name = region_name, 
     aws_access_key_id = aws_access_key_id, 
     aws_secret_access_key = aws_secret_access_key, 
    ) 

    # This will return $10,000.00 in the MTurk Developer Sandbox 
    print client.get_account_balance()['AvailableBalance'] 

Jusqu'à présent, je l'ai écrit:

#include <aws/core/Aws.h> 
    #include <aws/core/auth/awscredentialsprovider.h> 
    #include <aws/mturk-requester/MTurkClient.h> 
    #include <aws/core/client/ClientConfiguration.h> 
    #include <aws/mturk-requester/model/getaccountbalancerequest.h> 
    #include <aws/mturk-requester/model/getaccountbalanceresult.h> 
    #include <aws/core/utils/Outcome.h> 
    #include <aws/core/http/HttpRequest.h> 
    #include <iostream> 

    using std::string; 
    using std::cout; using std::endl; 
    using namespace Aws::Auth; 
    using namespace Aws::MTurk; 
    using namespace Aws::MTurk::Model; 
    using namespace Aws::Client; 

    int main(){ 
     Aws::SDKOptions options; 
     Aws::InitAPI(options); 

     const char* access_key = "my key"; //I put the right keys in 
     const char* secret_access_key = "my secret key"; 

     ClientConfiguration config; 
     config.region = "us_east_1"; 
     config.endpointOverride = "https://mturk-requester-sandbox.us-east-1.amazonaws.com"; 
     //Not sure if I need this to force sandbox mode 

     //Uncomment this line to use in production 
     //config.endpointOverride = "https://mturk-requester.us-east-1.amazonaws.com" 

     AWSCredentials creds; 
     creds.SetAWSAccessKeyId(access_key); 
     creds.SetAWSSecretKey(secret_access_key); 
     creds.SetSessionToken(""); 

     MTurkClient requester = MTurkClient(creds, config); 

     //not entirely sure what to do from here: 
     GetAccountBalanceResult bal; 
     //const GetAccountBalanceRequest& request = GetAccountBalanceRequest(); 
     //bal.SetAvailableBalance(); If I set it, it'll return what I set 

     //This should return $10, 000.00 in the MTurk Developer Sandbox 
     cout << bal.GetAvailableBalance() << endl; //outputs empty string 
     cout << config.region << endl; //outputs us_east_1 
     //requester.GetAccountBalance(request); I feel like this is what I should be using to get the balance? 
     cout << creds.GetAWSAccessKeyId() << endl; //outputs the right key 

     system("pause"); 

     Aws::ShutdownAPI(options); 
     return 0; 
    } 

Comme cela, le code compile et fonctionne avec les sorties commentées. J'ai regardé à travers AWS SDK for C++, le documentation, et également par les dossiers .cpp et .h de SDK eux-mêmes. Toute aide sur l'utilisation du SDK pour envoyer des informations sur le site Web serait également utile!

Répondre

0

Vous pouvez activer le journal par quelque chose comme: Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info; recommande également mettre le code sdk lié dans le support: InitAPI { //your code here } ShutdownAPI

Et vous avez besoin quelque chose comme: GetAccountBalanceOutcome outcome = client->GetAccountBalance(request)

API sont toujours dans le {NomService } Client.h. Vérifiez cet exemple S3 https://github.com/singku/aws-sdk-cpp-test