0

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

4

1 回答 1

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);
  }
})();
于 2018-08-14T14:03:08.833 回答