更新时间:2025-11-13 GMT+08:00

twitter回调接口

接口功能

创建Twitter渠道时,推送消息给Twitter,Twitter回调本接口认证。

使用说明

  • 前提条件

    在AICC测正确创建twitter渠道,twitter开发者平台填写回调地址正确。

    详见官方文档:https://developer.twitter.com/en/docs/twitter-api

接口鉴权

  /**
     * 渠道认证逻辑
     *
     * @param request 请求
     * @param response 响应
     */
    @Override
    public void confirm(HttpServletRequest request, HttpServletResponse response) {
        JSONObject returnObj = new JSONObject();
        String requestUrl = UsUriUtils.getRequestURI(request);
        String channelId = requestUrl.substring(requestUrl.lastIndexOf("/") + 1);
        AiccLog.intf("start deal with twitter confirm url,channelId:{}", channelId);
        if (CommonUtil.isEmpty(channelId)) {
            log.error("The channelId is null when check confirm url");
            return;
        }
        String crcToken = request.getParameter("crc_token");
        ChannelConfig channelConfig = adapterCommonService.getChannelConfig(channelId);
        String consumerSecret = twitterRedisService.getConsumerSecretAndDelete(channelId, channelConfig.getTenantId());
        if (StringUtils.isEmpty(consumerSecret)) {
            consumerSecret = getConsumerSecretFromChat(channelId);
        }
        if (StringUtils.isEmpty(consumerSecret)) {
            log.error("channel id : {} consumer parameter lost!", channelId);
        }
        try {
            String responseCode = BaseUtil.hMacSha256(crcToken, consumerSecret);
            returnObj.put("response_token", "sha256=" + responseCode);
        } catch (NoSuchAlgorithmException | InvalidKeyException e) {
            log.error("hmac sha256 error,channelId:{},tenantId:{}", channelId,channelConfig.getTenantId());
        }
        AiccLog.intf("end deal with twitter confirm url,channelId:{}", channelId);
    }

接口原型

表1 接口原型说明

请求方法

GET

请求URL

https://ip:port/social/on/twitter/{channelId}

其中,ip:port为对外暴露的nslb的ip和port,

channelId为渠道id

请求参数

表2 请求Headers参数说明

参数名称

选取原则

参数类型

默认值

说明

Content-Type

必选

String

固定填 application/x-www-form-urlencoded。

表3 请求入参params

参数名称

选取原则

参数类型

默认值

说明

crc_token

必选

String

用于生成上行接口认证token。

响应参数

表4 响应参数说明

参数名称

选取原则

参数类型

默认值

说明

response_token

必选

JSONObject

用于生成上行接口认证token。

接口示例

  • 请求示例
    GET
    Content-Type: application/json;charset=UTF-8
    https://ip/social/on/twitter/{channelId}
    x-www-form-urlencoded: key 
    crc_token:xxxxxxxxxxxxxxxxxx
  • 响应示例
    HTTP/1.1 200 OK
    Content-Type: application/json;charset=UTF-8
    {
    "response_token": "sha256=xxxxxxxxxx"
    }