Hi Corby,
    
Your 'Request' variable isn't right. You seem to be putting a bunch of unrelated stuff into it, including some HTTP protocol data, some HTTP headers and some query string variables.
    
Then, you are passing it to a parameter that is not used by GET requests, so even though its completely wrong, it won't be used anyway ;-)
    
My best guess is that you want this:
    
      URL = ''
           + '?grant_type=client_credentials'
           + '&client_id=' + http_urlEncode(%trim(ClientId))
           + '&client_secret=' +
      http_urlEncode(%trim(ClientSecret));
      
      response = http_string( 'GET': URL);
    
    
My thoughts:
    
    
1) The HTTP version and host are automatically set by HTTPAPI,
      you cannot override them.  There is no reason to specify them,
      here.
    
    
2) The content-type doesn't make sense with a GET request as you
      are not uploading anything that you need to specify the type of! 
      If you need it for a PUT or POST request, it would be specified in
      the 4th parameter to http_string (NOT just appended into the data
      you're sending!)
    
    
3) I did not bother specifying a cache-control header.  I really
      doubt that this would be needed, here... it is probably provided
      in case this is run in a web browser.  If you really do need it,
      you'd need to add it with an "additional header exit procedure".  
      
    
    
Give the above a try and see if it does what you need.
    
    
Never heard of 'SETAUTH', not sure what you're referring to with
      that.
    
-- Scott Klement sk@xxxxxxxxxxxxxxxx
I have a process that needs to obtain an authorization token each time it is run. I've seen a few posts to this forum that are along the same line, but none seem to have a resolution. One says you do not need to do a GET, but only do a SETAUTH. Not seeing a whole lot with that.
The documentation from the vendor has this example for the token request:GET /535b2d87-664f-415a-b7fa-fd3f1086d450/oauth2/token HTTP/1.1Host: login.microsoftonline.com Content-Type: application/x-www-form-urlencodedCache-Control: no-cachegrant_type=client_credentials&client_id=XXXXXXXXXX&client_secret=XXXXXXXXXXX
Here is my chunk of code...
URL = '';Request ='HTTP/1.1 Host: login.microsoftonline.com +Content-Type: application/x-www-form-urlencoded +Cache-Control: no-cache +grant_type=client_credentials+&client_id:' + %TRIM(ClientID) +'&client_secret:' +%Trim(ClientSecret);response = http_string( 'GET': URL: Request);
In my httplog, I get an error that says the request body must contain "grant_type".
I'm able to successfully obtain my token using Postman. I'm guessing there's a syntax thing going on or I'm just missing something.
Any help would be appreciated
Corby Weaver
Core-Mark Midcontinent, Inc. DBA Farner-Bocken Company
Email: corby.weaver@xxxxxxxxxxxxx
-- _______________________________________________ Ftpapi mailing list Ftpapi@xxxxxxxxxxxxxxxxxxxxxx http://scottklement.com/mailman/listinfo/ftpapi