Sample code for 30+ languages & platforms
Unicode C

Moody's REST API - Get OAuth2 Token

See more Moody's Examples

Demonstrates how to get an OAuth2 access token for the Moody's REST API.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkHttpW.h>
#include <C_CkHttpRequestW.h>
#include <C_CkHttpResponseW.h>
#include <C_CkFileAccessW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttpW http;
    HCkHttpRequestW req;
    HCkHttpResponseW resp;
    const wchar_t *responseBody;
    HCkFileAccessW fac;

    success = FALSE;

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http = CkHttpW_Create();

    req = CkHttpRequestW_Create();
    CkHttpRequestW_AddParam(req,L"grant_type",L"password");
    CkHttpRequestW_AddParam(req,L"scope",L"api/ratings api/addin rest");
    CkHttpRequestW_AddParam(req,L"username",L"my_username");
    CkHttpRequestW_AddParam(req,L"password",L"my_password");
    // I have no idea of where to get the client_id or client_secret.
    // When you create a Moody's App, it only provides an "API Key".
    CkHttpRequestW_AddParam(req,L"client_id",L"my_client_id");
    CkHttpRequestW_AddParam(req,L"client_secret",L"my_client_secret");

    CkHttpRequestW_putHttpVerb(req,L"POST");
    CkHttpRequestW_putContentType(req,L"application/x-www-form-urlencoded");

    resp = CkHttpResponseW_Create();
    success = CkHttpW_HttpReq(http,L"https://api.moodys.com/OAuth/Token",req,resp);
    if (success == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        CkHttpW_Dispose(http);
        CkHttpRequestW_Dispose(req);
        CkHttpResponseW_Dispose(resp);
        return;
    }

    wprintf(L"status code = %d\n",CkHttpResponseW_getStatusCode(resp));
    responseBody = CkHttpResponseW_bodyStr(resp);
    wprintf(L"%s\n",responseBody);

    // Save the JSON to a file for future requests.
    if (CkHttpResponseW_getStatusCode(resp) == 200) {
        fac = CkFileAccessW_Create();
        CkFileAccessW_WriteEntireTextFile(fac,L"qa_data/tokens/moodys.json",CkHttpResponseW_bodyStr(resp),L"utf-8",FALSE);
    }



    CkHttpW_Dispose(http);
    CkHttpRequestW_Dispose(req);
    CkHttpResponseW_Dispose(resp);
    CkFileAccessW_Dispose(fac);

    }