Я пытаюсь заставить Live Delegated Authentication работать с целью чтения адресов электронной почты.
Я делаю это в PHP с помощью библиотеки windowslivelogin. Проблема в том, что я получаю ошибку.
Я не уверен, что делаю неправильно, я зарегистрировал свое приложение на веб-странице Azure и получил appid и секретный код в коде. Это то, что я использую для инициализации Live Library:
$o = new WindowsLiveLogin();
$o->setAppId('000000004801B670');
$o->setSecret('secret');
$o->setSecurityAlgorithm('wsignin1.0');
$o->setDebug(true);
$o->setPolicyUrl('http://www.google.com/aides.html');
$o->setReturnUrl("http://michaelp.dev.gamepoint.net/framework/mainsite/contactimporter/?service=live");
return $o;
тогда я вызываю $ this-> LiveLibrary-> getLoginUrl ()
И после того, как я войду в Live, он отправляет 2 вещи назад, $ _POST ['stoken'] и $ _POST ['action'].
Как только я позвоню $ this-> LiveLibrary-> processLogin ($ _ REQUEST); он терпит неудачу и возвращает ошибку, что токен недействителен.
Я попытался сразу получить согласие, перенаправив на
$ This-> LiveLibrary-> getConsentUrl ( "Contacts.View");
но это дает ошибку 3007 и говорит, что не может поделиться информацией
According to MS this means the following :
3007
Consent Service API failed in the <method name> method. The application verifier is invalid.
The offer security level requires that a valid application verifier be passed with the request.
Я использую следующий URL, сгенерированный библиотекой
https://consent.live.com/Delegation.aspx?ps=Contacts.Invite&ru=http%3A%2F%2Fmichaelp.dev.gamepoint.net%2Fframework%2Fmainsite%2Fcontactimporter%2F%3Fservice%3Dlive&pl=http%3A%2F%2Fwww.google.com%2Faides.html&app=appid%3D000000004801B670%26ts%3D1251722931%26sig%3DD2gkM%252F%252FwlRXXfS64NMrV%252Bkt50v6dAOcESblfRk7j%252FUE%253D
Я не понимаю большую часть документации, имеющейся у Microsoft по этому поводу, я думаю, что она действительно неясна и хаотична. Также образец, который я попробовал, не работает. Я получаю сообщение об ошибке, он не может проверить / декодировать токен. То же самое я получаю, когда пытаюсь выполнить processLogin ().
Заранее спасибо,
Michael