ocilo / skype-http

Unofficial Skype API for Node.js via HTTP
https://ocilo.github.io/skype-http
MIT License
51 stars 24 forks source link

Unable to login with MicrosoftAccount #100

Closed hoangzinh closed 6 years ago

hoangzinh commented 6 years ago

When I authenticate with email & password. I got the error message like this

(node:25289) UnhandledPromiseRejectionWarning: MicrosoftAccountLogin: Unable to login with MicrosoftAccount.
  caused by GetLiveToken: Unable to get the Live token for Skype
  caused by LiveTokenNotFound: Unable to find the Live token. This token is normally found in the HTML response as the value of the element with the id "t". This error may be caused by a change in the Microsoft login workflow. HTML page: "<html><head><noscript>JavaScript required to sign in<meta http-equiv=\"Refresh\" content=\"0; URL=https://login.live.com/jsDisabled.srf?mkt=EN-US&lc=1033\"/></noscript><title>Continue</title><script type=\"text/javascript\">function OnBack(){}function OnNext(){}function DoSubmit(){var subt=false;if(!subt){subt=true;document.fmHF.submit();}}</script></head><body onload=\"javascript:DoSubmit();\"><form name=\"fmHF\" id=\"fmHF\" action=\"https://account.live.com/profile/accrue?ru=https://login.live.com/login.srf%3flc%3d1033%26sf%3d1%26id%3d293290%26tw%3d18000%26fs%3d0%26ts%3d-1%26sec%3d%26mspp_shared%3d1%26seclog%3d10%26claims%3d%26wa%3dwsignin1.0%26wp%3dMBI_SSL%26ru%3dhttps://lw.skype.com/login/oauth/proxy%253fclient_id%253d578134%2526site_name%253dlw.skype.com%2526redirect_uri%253dhttps%25253A%25252F%25252Fweb.skype.com%25252F%26scft%3dDbdixGEEsYVYtSMRexvtSGz9dkNyQGDZqkClix2G*znkYP0Hh*qQBICgyxa4nloaROWzMeZ1Olo2J8iVNX14EPDHkItfZyFEUxFcDbgXPrQcHRcrEVrEbV*wM3*gEnwpTZIiDqV7sMXApnlOM3R*yQad!nbKO4gJwGsguQc4TJjqgiQkZUyZ5GGWpDkqf3HOkpMi30USNdGg4E5VxONytUg%2524%26contextid%3d1421ED09C4944B7A&mkt=EN-US&uiflavor=web&id=293290&uaid=bd7e9c2899ec4619ba5eebe1dc1c5189&if=80000000&af=20&saf=0\" method=\"post\" target=\"_top\"><input type=\"hidden\" name=\"ipt\" id=\"ipt\" value=\"DVgh6HqomK5mjRaCJ3kLLyDwHwx7!20*wDdWEaSXAg!1SM15T8OkkASM6*sxwzkaDHexcYGIKM25!8GwSj05TnJA!UhFFP!DjKkncKG!pMUR*DCiPVSDo5Eo2vou6fSOWKtcjWEzzocvKbDbSaIvG!fodZMcvVQtZqVTInrOh!67c1bN2dC1pa*Q8eSMQ1LoEZ6IdF0n0uTKcNOLaAhNOM!gi7VHft4jOp36xYOjDwCk02CJVQ5wYMqHJXjyl3fT1lKTp!dHPnGgvBZOiWqfroaSxbl0cUmlycEySH6Q8Sve*NRp0F98KBYYAb*nhh*Upf8MsosizDC7mT!GMxC3qiZPAPe2rJs7iINpnBpsXXhytoGswCeLa2RUq75JaQdmSrJbeisUSYREnsXfIBi5Zj42rWUMXG27iqgGzAeCJ2HX6OR4F14TneU5I!Q1CJZHAaPDitV5FN31vkCBmGMaXMKEpkksUKvC2g3OSdSXGs2N\"><input type=\"hidden\" name=\"pprid\" id=\"pprid\" value=\"5ea9cd736ac21d19\"></form></body></html>"
    at Object.create (/home/devops/grablingo-api/node_modules/skype-http/errors/microsoft-account/get-live-token.js:17:16)
    at scrapLiveToken (/home/devops/grablingo-api/node_modules/skype-http/providers/microsoft-account.js:216:61)
    at getLiveToken (/home/devops/grablingo-api/node_modules/skype-http/providers/microsoft-account.js:138:16)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
(node:25289) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:25289) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

This is the code I used:

  const api = await connect({
    credentials: {
      username: process.env.skype_email,
      password: process.env.skype_password,
    }
  });

It ran successfullly on my local computer. But when I deployed it on DigitalOcean (a server service). It raised the above error.

I have no idea how to deal with it. Any suggestions for me?

hoangzinh commented 6 years ago

The solution is so simple, just update your information (age, birthday). I'm going to close this issue.

n3tman commented 6 years ago

More info on this issue: if you CURL the form you receive from the server, you see this page:

skype-bot

So error is fixed by entering Birthdate/Country here: https://account.microsoft.com/profile/

hoangzinh commented 6 years ago

@n3tman it's totally correct