如何为机器人实现OAuth 2 Circuit REST API?使用client_id和client_secret。谢谢。
答案 0 :(得分:1)
请参阅HTTP请求上的https://circuit.github.io/oauth.html#client_credentials以获取令牌。您可以手动执行/ oauth / token请求以获取令牌,或使用任何OAuth 2.0库。使用此OAuth令牌执行常规HTTP GET / POST请求。
下面是一个示例,该示例使用simple-oauth2获取令牌,然后使用node-fetch获取对话。
const simpleOauth2 = require('simple-oauth2');
const fetch = require('node-fetch');
const DOMAIN = 'https://circuitsandbox.net';
const credentials = {
client: {
id: '<client_id>',
secret: '<cient_secret>'
},
auth: {
tokenHost: DOMAIN
}
};
// Initialize the OAuth2 Library
const oauth2 = simpleOauth2.create(credentials);
(async () => {
try {
const { access_token: token } = await oauth2.clientCredentials.getToken({scope: 'ALL'})
console.log('Access Token: ', token);
const convs = await fetch(`${DOMAIN}/rest/conversations`, {
headers: { 'Authorization': 'Bearer ' + token },
}).then(res => res.json());
console.log('Conversations:', convs);
} catch (err) {
console.error(err);
}
})();