如何为Bots实现OAuth 2 Circuit REST API?

时间:2018-08-13 18:25:55

标签: circuit circuit-sdk

如何为机器人实现OAuth 2 Circuit REST API?使用client_id和client_secret。谢谢。

1 个答案:

答案 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);
  }
})();