我正在尝试使用Outlook邮件API在Meteor上构建一个Web应用程序。第一步是通过Outlook邮件API获取用户身份验证,这需要附加本地主机,客户端ID,密码等的自定义URL。
我查看了一些node.js oauth2教程并下载了simple-oauth2。所有教程都使用类似的东西:
const oauth2 = require('oauth2').create({
client: {
id: '<client-ID>',
secret: '<app-password>',
},
auth: {
tokenHost: 'https://login.microsoftonline.com',
authorizePath: 'common/oauth2/v2.0/authorize',
tokenPath: 'common/oauth2/v2.0/token'
}
});
当我运行它时,控制台记录“未捕获的TypeError:require(...)。create不是一个函数。” create()是否有某些我没有的下载?如果我将它分成两部分,则需要正常工作,所以我知道这是create()的一个问题。
答案 0 :(得分:0)
首先,如果你列出const,那么只要你知道你做了什么就不要在最后扩展它们。
其次我不使用Outlook API,但我使用OneDrive API,它应该是类似的。您需要按照有关如何获取身份验证代码的文档进行操作。或者在这里,我为OneDrive创建它的指南应该与您的问题相同
在https://apps.dev.microsoft.com/添加应用程序,您需要使用microsoft帐户。
输入您的应用程序名称。在这种情况下,请勿使用Guided Setup
创建应用程序密钥并将其复制以保存loaction
添加平台并选择网络。在这种情况下,重定向网址为http://localhost/dashboard
转到下面的图表访问,并选择两个选项Files.ReadWrite.All
确保按保存。
在此网址中输入您的客户端ID,其中xxxxxx为。请注意,客户端ID是您可以在应用程序设置顶部找到的应用程序ID。 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxxxxxx&scope=offline_access%20files.readwrite.all&response_type=code&redirect_uri=http://localhost/dashboard
请将以上网址输入您的浏览器。使用您的Microsoft帐户登录,然后单击“是”以授予您的应用程序访问权限。然后,您将被重定向到http://localhost/dashboard/?code=xxxxxxxxx-xxxxxx-xxxxx-xxx-xxxxx
此验证码可用于将使用此步骤生成的access_token
request.post({url:'https://login.microsoftonline.com/common/oauth2/v2.0/token', form: {
redirect_uri: 'https://login.live.com/oauth20_desktop.srf',
client_id: 'xxxxxxxxxxxxxxxxx',
client_secret: 'xxxxxxxxxxxxxxxx',
code: 'xxxxxxxxxxxxxxxxxx',
grant_type: 'authorization_code'
}
}, function(err,httpResponse,body){ /* ... */
console.log('err: ' + err)
console.log('body: ' + body)
});
对于每个oAuth2 API,这基本上都是相同的过程。请注意,我在access_token请求中使用redirect_uri http://localhost/dashboard
中的其他API如果您以及console.log上的请求作为示例,并且您获得了对象对象,那么请使用stringify。希望它可以帮到你