1
오랫동안 수색했지만 관련 솔루션을 찾지 못했습니다.javascript SDK로 Outlook 메시지를 보내는 방법은 무엇입니까?
makeSilentTokenRequest
//The static key authentication request
function makeSilentTokenRequest(callback) {
// Build up a hidden iframe
var iframe = $('<iframe/>');
iframe.attr('id', 'auth-iframe');
iframe.attr('name', 'auth-iframe');
iframe.appendTo('body');
iframe.hide();
iframe.load(function() {
callback(localStorage.accessToken);
});
iframe.attr('src', buildAuthUrl() + '&prompt=none&domain_hint=' +
localStorage.userDomainType + '&login_hint=' +
localStorage.userSigninName);
}
getAccessToken
//Verify refresh token function
function getAccessToken(callback) {
var now = new Date().getTime();
var isExpired = now > parseInt(localStorage.tokenExpires);
// Do we have a token already?
if (localStorage.accessToken && !isExpired) {
// Just return what we have
if (callback) {
callback(localStorage.accessToken);
}
} else {
// Attempt to do a hidden iframe request
makeSilentTokenRequest(callback);
}
}
: 나는
403
을 얻기 위해 마이크로 소프트 그래프 API를 통해 메일을 보낼 때 문제가
{
statusCode: 403,
code: "ErrorAccessDenied",
message: "Access is denied. Check credentials and try again."
}
코드입니다
는 나도 몰라
getUserEmailAddress
function getUserEmailAddress(callback) {
//I saved it in localStorage
if (localStorage.userEmail) {
return localStorage.userEmail;
} else {
//getAccessToken
getAccessToken(function (accessToken) {
if (accessToken) {
// Create a Graph client
var client = MicrosoftGraph.Client.init({
authProvider: (done) => {
// Just return the token
done(null, accessToken);
}
});
// Get the Graph /Me endpoint to get user email address
client
.api('/me')
.get((err, res) => {
if (err) {
callback(null, err);
} else {
callback(res.mail);
}
});
} else {
var error = {
responseText: 'Could not retrieve access token'
};
callback(null, error);
}
});
}
}
센드 메일
//sendMail
function sendMail(message) {
getUserEmailAddress(function (userEmail, error) {
if (error) {
renderError('getUserEmailAddress failed', error.responseText);
} else {
getAccessToken(function (accessToken) {
if (accessToken) {
// Create a Graph client
var client = MicrosoftGraph.Client.init({
authProvider: (done) => {
// Just return the token
done(null, accessToken);
}
});
client
.api('/me/sendMail')
.header('Authorization', 'Bearer ' + accessToken)
.header('Content-Type', "application/json")
.post(message, (err, res) => {
if (err) {
console.log(err);
//callback(null, err);
} else {
console.log(res);
//callback(res.value);
}
});
} else {
var error = {
responseText: 'Could not retrieve access token'
};
//callback(null, error);
}
});
}
})
}
createMail는
function createMail(message,callback){
getUserEmailAddress(function(userEmail, error) {
if (error) {
renderError('getUserEmailAddress failed', error.responseText);
} else {
getAccessToken(function(accessToken) {
if (accessToken) {
// Create a Graph client
var client = MicrosoftGraph.Client.init({
authProvider: (done) => {
// Just return the token
done(null, accessToken);
}
});
client
.api('/me/messages')
.header('Authorization', 'Bearer ' +accessToken)
.header('Content-Type', "application/json")
.post(message,(err, res) => {
if (err) {
callback(res);
console.log("创建失败!");
} else {
callback(res);
console.log("创建成功!");
}
});
} else {
var error = { responseText: 'Could not retrieve access token' };
//callback(null, error);
}
});
}
})
}
미리 감사드립니다. 사용 방법을 문제에 넣었습니다. 저는 Microsoft의 방법으로 'accessToken'을 사용하고 있으며 정상적으로 메일 링리스트를 얻을 수 있지만 메일을 보낼 때 문제가 있습니다. 내가주의해야 할 특별한 점은 무엇입니까? – ronger
그래서 우리는'accessToken'을 얻기위한 "FW"Microsoft Ways "를 가지고 있습니다. 자체 스코프 세트 (Microsoft Graph API, Azure Graph API, Microsoft Graph API)가있는 여러 API는 말할 것도없고 여러 끝점 (v1.0 v2.0)과 여러 OAUTH 흐름 ('authorization_code','implicit','client_credentials') Exchange 웹 서비스, Yammer API 등). 정확하게 토큰을 얻는 방법을 이해하면이 경우 토큰이 거부되는 이유를 알 수 있습니다. –
감사합니다. 분명하지는 않습니다. [Microsoft Graph API] (https://developer.microsoft.com/ko-kr/graph/docs/api-reference/v1.0/api)를 사용하고 있습니다./user_sendmail) – ronger