首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ SDK用于MTurk GetAccountBalance API调用

C++ SDK用于MTurk GetAccountBalance API调用
EN

Stack Overflow用户
提问于 2017-06-02 13:08:31
回答 1查看 91关注 0票数 0

我对C++有点陌生,根本没有使用过SDK。我试图在Visual 2013中使用C++重新创建在MTurk请求者站点的开发人员页面上提供的示例API调用,该调用应该从沙箱中返回帐户余额。下面是从开发人员页面复制的python示例:

代码语言:javascript
复制
    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']

到目前为止,我写了这篇文章:

代码语言:javascript
复制
    #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;
    }

就像这样,代码编译并使用注释的输出运行。我查看了用于C++的文档以及SDK、.cpp和.h文件本身。任何有关使用SDK向网站发送信息的帮助都会有所帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-06 17:43:21

您可以通过如下方式打开日志:Aws::SDKOptions options; options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;还建议将sdk相关代码放在括号中:InitAPI { //your code here } ShutdownAPI

你需要这样的东西:GetAccountBalanceOutcome outcome = client->GetAccountBalance(request)

API总是在{ServiceName}Client.h中。检查此S3示例https://github.com/singku/aws-sdk-cpp-test

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44329773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档