great77

API logmein not authenticated help

16 posts in this topic

I am having a problem with API authentication of LOGMEIN. . It is giving a message Not Authenticated. I checked the psk and company ID and they are correct. I have used the same credentials to get some info from their public APi, but in this case am having problem.  This is the public API pdf link if someone can help me with the authentication.https://secure.logmein.com/welcome/documentation/EN/pdf/LogMeInCentralPublicAPIReference.pdf 

$restReq = ObjCreate("winhttp.winhttprequest.5.1")
While 1
    $file = FileOpen($MyFile, 2)

$url = 'https://secure.logmein.com/public-api/v1/hosts? -H "Authorization:{\"companyId\":1cccsss43,\"psk\":\"00_\"}" -i -H "Content-Type:application/JSON; charset=utf-8" -H "Accept:application/JSON; charset=utf-8"'

$restReq.Open("GET", $url, False)

$restReq.Send()

$oReceived = $restReq.ResponseText()
$oStatusCode = $restReq.Status


 ;$file = FileOpen("Received.txt", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)
Msgbox (0,"result",  $oReceived)
Msgbox (0,"result",  $oStatusCode )
FileClose($file)

 

$

Share this post


Link to post
Share on other sites



With ObjCreate("winhttp.winhttprequest.5.1")

    .Open("GET", 'https://secure.logmein.com/public-api/v1/hosts')
    .SetRequestHeader("Authorization", '{"companyId":"1cccsss43","psk":"00_"}')
    .SetRequestHeader("Content-Type", 'application/json')
    .Send()

    MsgBox(4096, ".ResponseText", .ResponseText())
    MsgBox(4096, "Status", .Status)

EndWith

 

1 person likes this

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

Wow! Thank you so much Trancexx . It is perfectly working!!

Cheers :)

Share this post


Link to post
Share on other sites
With ObjCreate("winhttp.winhttprequest.5.1")

    .Open("GET", 'https://secure.logmein.com/public-api/v1/hosts')
    .SetRequestHeader("Authorization", '{"companyId":"1cccsss43","psk":"00_"}')
    .SetRequestHeader("Content-Type", 'application/json')
    .Send()

    MsgBox(4096, ".ResponseText", .ResponseText())
    MsgBox(4096, "Status", .Status)

EndWith

 

Hi Tancexxx   Please am querying this part ("GET", 'https://secure.logmein.com/public-api/v1/inventory/hardware/reports')  and it is only given {"expires":null, "token:null},

Any reason for this. Apologies to ask another question....

Share this post


Link to post
Share on other sites

Sorry, I have no idea.


♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

Sorry, I have no idea.

This is the for the POST am getting error " status as 500, which seems to be server error and then encountered unexpected character h "ticket :"

While 1
 $file = FileOpen($MyFile, 2)
 $restReq = ObjCreate("winhttp.winhttprequest.5.1")


  $restReq.Open("POST", 'https://secure.logmein.com/public-api/v1/inventory/hardware/reports', False)
   $restReq.SetRequestHeader("Authorization", '{"companyId":"1143","psk":"00_ggphj"}')
   $restReq.SetRequestHeader("Content-Type", 'application/json; charset=utf-8')
    $restReq.SetRequestHeader("Accept", 'application/json; charset=utf-8')
$spost = ' hostids=17473462, 1764856&fields=BatteryName, ServiceTag '
; Performing the Request
$restReq.Send($spost)
;$restReq.Send()
    MsgBox(4096, "Result", $restReq.ResponseTExt())
    MsgBox(4096, "Status", $restReq.Status)

Edited by great77

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

 

This is the for the POST am getting error " status as 500, which seems to be server error and then encountered unexpected character h "ticket :"

 

While 1
 $file = FileOpen($MyFile, 2)
 $restReq = ObjCreate("winhttp.winhttprequest.5.1")


  $restReq.Open("POST", 'https://secure.logmein.com/public-api/v1/inventory/hardware/reports', False)
   $restReq.SetRequestHeader("Authorization", '{"companyId":"1143","psk":"00_ggphj"}')
   $restReq.SetRequestHeader("Content-Type", 'application/json; charset=utf-8')
    $restReq.SetRequestHeader("Accept", 'application/json; charset=utf-8')
$spost = ' hostids=17473462, 1764856&fields=BatteryName, ServiceTag '
; Performing the Request
$restReq.Send($spost)
;$restReq.Send()
    MsgBox(4096, "Result", $restReq.ResponseTExt())
    MsgBox(4096, "Status", $restReq.Status)

Edited by great77

Share this post


Link to post
Share on other sites
; The data to be sent - User Credentials etc here!!
$sPD = 'hostids=17473462&1764856&fields=BatteryName&ServiceTag'

; Creating the object
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("POST", "https://secure.logmein.com/public-api/v1/inventory/hardware/reports", False) ; Post url
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") ; Header data >
$oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
; Header data <
; Performing the Request
$oHTTP.Send($sPD)
;Download the body response if any, and get the server status response code.
$oReceived = $oHTTP.ResponseText
$oStatusCode = $oHTTP.Status

If $oStatusCode <> 200 then
 MsgBox(4096, "Response code", $oStatusCode)
EndIf

; Saves the body response regardless of the Response code
 $file = FileOpen("Received.html", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)

Please reply with errors!
If you want I can also put it in an array so you can input useranme/password or whatever post data you want to sent in .txt files, it may make life easier?

Share this post


Link to post
Share on other sites
; The data to be sent - User Credentials etc here!!
$sPD = 'hostids=17473462&1764856&fields=BatteryName&ServiceTag'

; Creating the object
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("POST", "https://secure.logmein.com/public-api/v1/inventory/hardware/reports", False) ; Post url
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") ; Header data >
$oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
; Header data <
; Performing the Request
$oHTTP.Send($sPD)
;Download the body response if any, and get the server status response code.
$oReceived = $oHTTP.ResponseText
$oStatusCode = $oHTTP.Status

If $oStatusCode <> 200 then
 MsgBox(4096, "Response code", $oStatusCode)
EndIf

; Saves the body response regardless of the Response code
 $file = FileOpen("Received.html", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)

Please reply with errors!
If you want I can also put it in an array so you can input useranme/password or whatever post data you want to sent in .txt files, it may make life easier?

Thank you RyukShini. It is still similar to the unexpected error I had earlier as well. I changed the content-type and aceept to application/json and still gives the same error.

Please see the error below. If I use GET request it gives OK as status and return token as null and expires as null. Please look at the link of the logmein documentation

https://secure.logmein.com/welcome/documentation/EN/pdf/LogMeInCentralPublicAPIReference.pdf  .

{"message":"Unexpected error: The incoming message has an unexpected message format 'Raw'. The expected message formats for the operation are 'Xml', 'Json'. This can be because a WebContentTypeMapper has not been configured on the binding. See the documentation of WebContentTypeMapper for more details.","ticket":"d336661457"}

Any suggestion is highly appreciated.

Share this post


Link to post
Share on other sites

Thank you RyukShini. It is still similar to the unexpected error I had earlier as well. I changed the content-type and aceept to application/json and still gives the same error.

Please see the error below. If I use GET request it gives OK as status and return token as null and expires as null. Please look at the link of the logmein documentation

https://secure.logmein.com/welcome/documentation/EN/pdf/LogMeInCentralPublicAPIReference.pdf  .

{"message":"Unexpected error: The incoming message has an unexpected message format 'Raw'. The expected message formats for the operation are 'Xml', 'Json'. This can be because a WebContentTypeMapper has not been configured on the binding. See the documentation of WebContentTypeMapper for more details.","ticket":"d336661457"}

Any suggestion is highly appreciated.

; The data to be sent - User Credentials etc here!!
$sPD = 'companyId=1143&psk=00_ggphj'


; Creating the object
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "https://secure.logmein.com/public-api/v1/authentication", False) ; Post url
$oHTTP.SetRequestHeader("Authorization", '{"companyId":"1143","psk":"00_ggphj"}')
$oHTTP.SetRequestHeader("Content-Type", 'application/json; charset=utf-8')
$oHTTP.SetRequestHeader("Accept", 'application/json; charset=utf-8')
; Header data <
; Performing the Request
$oHTTP.Send($sPD)
;Download the body response if any, and get the server status response code.
$oReceived = $oHTTP.ResponseText
$oStatusCode = $oHTTP.Status

If $oStatusCode <> 200 then
 MsgBox(4096, "Response code", $oStatusCode)
EndIf

; Saves the body response regardless of the Response code
 $file = FileOpen("Received.html", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)

 

{"success":false}

Thats all I get?

Share this post


Link to post
Share on other sites

Mine is given {"success":true}.  

I am just looking at where something might be wrong.

 

Share this post


Link to post
Share on other sites
$MyFile = @ComputerName & ".txt"









While 1
 $file = FileOpen($MyFile, 2)


$sPD = 'hostids=17473462&1764856&fields=BatteryName&ServiceTag'





; Creating the object
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("post", "https://secure.logmein.com/public-api/v1/inventory/hardware/reports", False) ; Post url

$oHTTP.SetRequestHeader("Authorization", '{"companyId":"1143","psk":"00_gphjxxxxxxxxxxxxxxxxx"}')
 $oHTTP.SetRequestHeader("User-Agent", "User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0")
  $oHTTP.SetRequestHeader("Content-Type", 'application/json; charset=utf-8')
$oHTTP.SetRequestHeader("Accept", 'application/json; charset=utf-8')
;$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") ; Header data >
;$oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
; Header data <
; Performing the Request
$oHTTP.Send($sPD)
;Download the body response if any, and get the server status response code.
$oReceived = $oHTTP.ResponseText

$oStatusCode = $oHTTP.Status


MsgBox(4096, "Response code",$oReceived)

If $oStatusCode <> 200 then
 MsgBox(4096, "Response code", $oStatusCode)

EndIf



; Saves the body response regardless of the Response code
 $file = FileOpen("Received.txt", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)
ExitLoop

Wend

This one is giving error as :{"message":"Unexpected error: There was an error checking start element of object of type LMI.PublicApi.Inventory.DTO.CreateInventoryReportParameters. Encountered unexpected character 'h'.","ticket":"d337376614"}

Share this post


Link to post
Share on other sites

Mine is given {"success":true}.  

I am just looking at where something might be wrong.

 

the one giving success true, is that from what I gave you?
If not please share the full code giving success true.

Share this post


Link to post
Share on other sites

the one giving success true, is that from what I gave you?If not please share the full code giving success true.

$MyFile = @ComputerName & ".txt"









While 1
 $file = FileOpen($MyFile, 2)


$sPD = 'hostids=17473462&1764856&fields=BatteryName&ServiceTag'





; Creating the object
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("get", "https://secure.logmein.com/public-api/v1/authentication", False) ; Post url

$oHTTP.SetRequestHeader("Authorization", '{"companyId":"1143","psk":"00_gphjxxxxxxxxxxxxxxxxx"}')
 $oHTTP.SetRequestHeader("User-Agent", "User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0")
  $oHTTP.SetRequestHeader("Content-Type", 'application/json; charset=utf-8')
$oHTTP.SetRequestHeader("Accept", 'application/json; charset=utf-8')
;$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") ; Header data >
;$oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
; Header data <
; Performing the Request
$oHTTP.Send()
;Download the body response if any, and get the server status response code.
$oReceived = $oHTTP.ResponseText

$oStatusCode = $oHTTP.Status


MsgBox(4096, "Response code",$oReceived)

If $oStatusCode <> 200 then
 MsgBox(4096, "Response code", $oStatusCode)

EndIf



; Saves the body response regardless of the Response code
 $file = FileOpen("Received.txt", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)
ExitLoop

Wend

 

Share this post


Link to post
Share on other sites

 

$MyFile = @ComputerName & ".txt"









While 1
 $file = FileOpen($MyFile, 2)


$sPD = 'hostids=17473462&1764856&fields=BatteryName&ServiceTag'





; Creating the object
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("get", "https://secure.logmein.com/public-api/v1/authentication", False) ; Post url

$oHTTP.SetRequestHeader("Authorization", '{"companyId":"1143","psk":"00_gphjxxxxxxxxxxxxxxxxx"}')
 $oHTTP.SetRequestHeader("User-Agent", "User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0")
  $oHTTP.SetRequestHeader("Content-Type", 'application/json; charset=utf-8')
$oHTTP.SetRequestHeader("Accept", 'application/json; charset=utf-8')
;$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") ; Header data >
;$oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
; Header data <
; Performing the Request
$oHTTP.Send()
;Download the body response if any, and get the server status response code.
$oReceived = $oHTTP.ResponseText

$oStatusCode = $oHTTP.Status


MsgBox(4096, "Response code",$oReceived)

If $oStatusCode <> 200 then
 MsgBox(4096, "Response code", $oStatusCode)

EndIf



; Saves the body response regardless of the Response code
 $file = FileOpen("Received.txt", 2) ; The value of 2 overwrites the file if it already exists
 FileWrite($file, $oReceived)
ExitLoop

Wend

 

This is still giving me success false, not sure why?
 

Share this post


Link to post
Share on other sites

May be you should not use application/json. Are you using logmein for your testing?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now