Outlook API — мы получили неверный запрос

я следую этот учебник, и я получаю следующее сообщение: Извините, но у нас возникли проблемы при входе в систему.
Мы получили плохой запрос. К сожалению, Microsoft не дает мне ничего, кроме этого сообщения.

РЕДАКТИРОВАТЬ: вот код, который я использую с идентификаторами и паролями в масках

home.php

<?php
session_start();
require('oauth.php');

$loggedIn = false;
$redirectUri = 'http://localhost:9999/outlook_cal03/authorize.php';
?>

<html>
<head>
<title>PHP Mail API Tutorial</title>
</head>
<body>

<?php
if (!$loggedIn) {
?>
<!-- User not logged in, prompt for login -->
<p>Please <a href="<?php echo oAuthService::getLoginUrl($redirectUri)?>">sign in</a> with your Office 365 or Outlook.com account.</p>
<?php
}
else {
?>
<!-- User is logged in, do something here -->
<p>Hello user!</p>
<?php
}
?>

</body>
</html>

oauth.php

<?php
class oAuthService {
private static $clientId = "###################";
private static $clientSecret = "################";
private static $authority = "https://login.microsoftonline.com";
private static $authorizeUrl = '/common/oauth2/v2.0/authorize?client_id=%1$s&redirect_uri=%2$s&response_type=code&scope=%3$s';
private static $tokenUrl = "/common/oauth2/v2.0/token";

// The app only needs openid (for user's ID info), and Mail.Read
private static $scopes = array("openid", "https://outlook.office.com/mail.read");

public static function getLoginUrl($redirectUri) {

$redirectUri = $redirectUri;

// Build scope string. Multiple scopes are separated
// by a space
$scopestr = implode(" ", self::$scopes);

$loginUrl = self::$authority.sprintf(self::$authorizeUrl, self::$clientId, urlencode($redirectUri), urlencode($scopestr));

error_log("Generated login URL: ".$loginUrl);
return $loginUrl;
}
}
?>

authorize.php

<?php
session_start();
$auth_code = $_GET['code'];
?>

<p>Auth code: <?php echo $auth_code ?></p>

0

Решение

Все мои проблемы возникли из-за того, что я не смог зарегистрировать свой URL перенаправления в Outlook, и это было все.

1

Другие решения

Добавьте эту строку, и она будет работать:

error_reporting(0);
0

По вопросам рекламы [email protected]